| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _INC_NAPTYPES |
| #define _INC_NAPTYPES |
| |
| #if (_WIN32_WINNT >= 0x0600) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define maxSoHAttributeCount 0x64 |
| #define maxSoHAttributeSize 0xFA0 |
| #define minNetworkSoHSize 0xC |
| #define maxNetworkSoHSize 0xFA0 |
| #define maxDwordCountPerSoHAttribute (maxSoHAttributeSize / sizeof(DWORD)) |
| #define maxIpv4CountPerSoHAttribute (maxSoHAttributeSize / 0x4) |
| #define maxIpv6CountPerSoHAttribute (maxSoHAttributeSize / 0x10) |
| #define maxStringLength 0x400 |
| #define maxStringLengthInBytes ((maxStringLength + 1) * sizeof(WCHAR)) |
| #define maxSystemHealthEntityCount 0x14 |
| #define maxEnforcerCount 0x14 |
| #define maxPrivateDataSize 0xC8 |
| #define maxConnectionCountPerEnforcer 0x14 |
| #define maxCachedSoHCount (maxSystemHealthEntityCount * maxEnforcerCount * maxConnectionCountPerEnforcer) |
| #define freshSoHRequest 0x1 |
| #define shaFixup 0x1 |
| #define failureCategoryCount 0x5 |
| #define ComponentTypeEnforcementClientSoH 0x1 |
| #define ComponentTypeEnforcementClientRp 0x2 |
| |
| #ifndef NAPTypes |
| #define NAPTypes |
| typedef struct tagCountedString { |
| UINT16 length; |
| WCHAR *string; |
| } CountedString; |
| typedef FILETIME ProbationTime; |
| typedef UINT32 ProtocolMaxSize; |
| typedef UINT32 NapComponentId; |
| typedef NapComponentId SystemHealthEntityId; |
| typedef NapComponentId EnforcementEntityId; |
| typedef UINT16 SystemHealthEntityCount; |
| typedef UINT16 EnforcementEntityCount; |
| typedef CountedString StringCorrelationId; |
| typedef GUID ConnectionId; |
| typedef UINT8 Percentage; |
| typedef UINT32 MessageId; |
| #endif /* NAPTypes */ |
| |
| typedef enum tagFixupState { |
| fixupStateSuccess = 0, |
| fixupStateInProgress = 1, |
| fixupStateCouldNotUpdate = 2 |
| } FixupState; |
| |
| typedef enum tagFailureCategory { |
| failureCategoryNone = 0, |
| failureCategoryOther = 1, |
| failureCategoryClientComponent = 2, |
| failureCategoryClientCommunication = 3, |
| failureCategoryServerComponent = 4, |
| failureCategoryServerCommunication = 5 |
| } FailureCategory; |
| |
| typedef enum tagIsolationState { |
| isolationStateNotRestricted = 1, |
| isolationStateInProbation = 2, |
| isolationStateRestrictedAccess = 3 |
| } IsolationState; |
| |
| typedef enum tagExtendedIsolationState { |
| extendedIsolationStateNoData = 0, |
| extendedIsolationStateTransition = 1, |
| extendedIsolationStateInfected = 2, |
| extendedIsolationStateUnknown = 3 |
| } ExtendedIsolationState; |
| |
| typedef enum tagRemoteConfigurationType { |
| remoteConfigTypeMachine = 1, |
| remoteConfigTypeConfigBlob = 2 |
| } RemoteConfigurationType; |
| |
| typedef enum tagNapNotifyType { |
| napNotifyTypeUnknown = 0, |
| napNotifyTypeServiceState = 1, |
| napNotifyTypeQuarState = 2 |
| } NapNotifyType; |
| |
| typedef struct tagResultCodes { |
| UINT16 count; |
| HRESULT *results; |
| } ResultCodes; |
| |
| typedef struct tagCorrelationId { |
| GUID connId; |
| FILETIME timeStamp; |
| } CorrelationId; |
| |
| typedef struct tagSoHAttribute { |
| UINT16 type; |
| UINT16 size; |
| BYTE * value; |
| } SoHAttribute; |
| |
| typedef struct tagIpv4Address { |
| BYTE addr[4]; |
| } Ipv4Address; |
| |
| typedef struct tagIpv6Address { |
| BYTE addr[16]; |
| } Ipv6Address; |
| |
| typedef struct tagSoH { |
| UINT16 count; |
| SoHAttribute *attributes; |
| } SoH, SoHRequest, SoHResponse; |
| |
| typedef struct tagFixupInfo { |
| FixupState state; |
| Percentage percentage; |
| ResultCodes resultCodes; |
| MessageId fixupMsgId; |
| } FixupInfo; |
| |
| typedef struct tagFailureCategoryMapping { |
| WINBOOL mappingCompliance[failureCategoryCount]; |
| } FailureCategoryMapping; |
| |
| typedef struct tagIsolationInfo { |
| IsolationState isolationState; |
| ProbationTime probEndTime; |
| CountedString failureUrl; |
| } IsolationInfo; |
| |
| typedef struct tagIsolationInfoEx { |
| IsolationState isolationState; |
| ExtendedIsolationState extendedIsolationState; |
| ProbationTime probEndTime; |
| CountedString failureUrl; |
| } IsolationInfoEx; |
| |
| typedef struct tagNapComponentRegistrationInfo { |
| NapComponentId id; |
| CountedString friendlyName; |
| CountedString description; |
| CountedString version; |
| CountedString vendorName; |
| CLSID infoClsid; |
| CLSID configClsid; |
| FILETIME registrationDate; |
| UINT32 componentType; |
| } NapComponentRegistrationInfo; |
| |
| typedef struct tagPrivateData { |
| UINT16 size; |
| BYTE * data; |
| } PrivateData; |
| |
| typedef struct tagNetworkSoH { |
| UINT16 size; |
| BYTE * data; |
| } NetworkSoH, NetworkSoHRequest, NetworkSoHResponse; |
| |
| typedef struct tagSystemHealthAgentState { |
| SystemHealthEntityId id; |
| ResultCodes shaResultCodes; |
| FailureCategory failureCategory; |
| FixupInfo fixupInfo; |
| } SystemHealthAgentState; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| |
| #endif /* _INC_NAPTYPES */ |
| |