| /** | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER within this package. | |
| */ | |
| import "oaidl.idl"; | |
| import "ocidl.idl"; | |
| cpp_quote("#include <winapifamily.h>") | |
| cpp_quote("") | |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | |
| [pointer_default (unique)] | |
| interface INapTypes { | |
| const UINT8 freshSoHRequest = 0x1; | |
| const UINT8 shaFixup = 0x1; | |
| const UINT8 percentageNotSupported = 101; | |
| const UINT16 maxSoHAttributeCount = 100; | |
| const UINT16 maxSoHAttributeSize = 4000; | |
| const UINT16 minNetworkSoHSize = 12; | |
| const UINT16 maxNetworkSoHSize = 4000; | |
| const UINT16 maxDwordCountPerSoHAttribute = maxSoHAttributeSize / sizeof (DWORD); | |
| const UINT16 maxIpv4CountPerSoHAttribute = maxSoHAttributeSize / 4; | |
| const UINT16 maxIpv6CountPerSoHAttribute = maxSoHAttributeSize / 16; | |
| const UINT16 maxStringLength = 1024; | |
| const UINT16 maxStringLengthInBytes = (maxStringLength + 1) * sizeof (WCHAR); | |
| const UINT16 maxSystemHealthEntityCount = 20; | |
| const UINT16 maxEnforcerCount = 20; | |
| const UINT16 maxPrivateDataSize = 200; | |
| const UINT16 maxConnectionCountPerEnforcer = 20; | |
| const UINT16 maxCachedSoHCount = maxSystemHealthEntityCount * maxEnforcerCount * maxConnectionCountPerEnforcer; | |
| const UINT16 failureCategoryCount = 5; | |
| const UINT32 ComponentTypeEnforcementClientSoH = 0x1; | |
| const UINT32 ComponentTypeEnforcementClientRp = 0x2; | |
| typedef enum tagIsolationState { | |
| isolationStateNotRestricted = 1, | |
| isolationStateInProbation = 2, | |
| isolationStateRestrictedAccess = 3 | |
| } IsolationState; | |
| typedef enum tagExtendedIsolationState { | |
| extendedIsolationStateNoData = 0x0, | |
| extendedIsolationStateTransition = 0x1, | |
| extendedIsolationStateInfected = 0x2, | |
| extendedIsolationStateUnknown = 0x3 | |
| } ExtendedIsolationState; | |
| typedef enum tagNapTracingLevel { | |
| tracingLevelUndefined = 0, | |
| tracingLevelBasic = 1, | |
| tracingLevelAdvanced = 2, | |
| tracingLevelDebug = 3 | |
| } NapTracingLevel; | |
| typedef enum tagFailureCategory { | |
| failureCategoryNone = 0, | |
| failureCategoryOther = 1, | |
| failureCategoryClientComponent = 2, | |
| failureCategoryClientCommunication = 3, | |
| failureCategoryServerComponent = 4, | |
| failureCategoryServerCommunication = 5 | |
| } FailureCategory; | |
| typedef enum tagFixupState { | |
| fixupStateSuccess = 0, | |
| fixupStateInProgress = 1, | |
| fixupStateCouldNotUpdate = 2 | |
| } FixupState; | |
| typedef enum tagNapNotifyType { | |
| napNotifyTypeUnknown = 0, | |
| napNotifyTypeServiceState = 1, | |
| napNotifyTypeQuarState = 2 | |
| } NapNotifyType; | |
| typedef enum tagRemoteConfigurationType { | |
| remoteConfigTypeMachine = 1, | |
| remoteConfigTypeConfigBlob | |
| } RemoteConfigurationType; | |
| typedef FILETIME ProbationTime; | |
| typedef UINT32 MessageId; | |
| typedef UINT32 NapComponentId; | |
| typedef NapComponentId SystemHealthEntityId; | |
| typedef NapComponentId EnforcementEntityId; | |
| typedef struct tagCountedString { | |
| UINT16 length; | |
| [size_is (length + 1), string] WCHAR *string; | |
| } CountedString; | |
| typedef CountedString StringCorrelationId; | |
| typedef struct tagIsolationInfo { | |
| IsolationState isolationState; | |
| ProbationTime probEndTime; | |
| CountedString failureUrl; | |
| } IsolationInfo; | |
| typedef struct tagIsolationInfoEx { | |
| IsolationState isolationState; | |
| ExtendedIsolationState extendedIsolationState; | |
| ProbationTime probEndTime; | |
| CountedString failureUrl; | |
| } IsolationInfoEx; | |
| typedef struct tagFailureCategoryMapping { | |
| BOOL mappingCompliance[failureCategoryCount]; | |
| } FailureCategoryMapping; | |
| typedef [range (0, maxSystemHealthEntityCount)] UINT16 SystemHealthEntityCount; | |
| typedef [range (0, maxEnforcerCount)] UINT16 EnforcementEntityCount; | |
| typedef struct tagCorrelationId { | |
| GUID connId; | |
| FILETIME timeStamp; | |
| } CorrelationId; | |
| typedef GUID ConnectionId; | |
| typedef [range (0, percentageNotSupported)] UINT8 Percentage; | |
| typedef struct tagResultCodes { | |
| [range (0, maxDwordCountPerSoHAttribute)] UINT16 count; | |
| [size_is (count)] HRESULT *results; | |
| } ResultCodes; | |
| typedef struct tagIpv4Address { | |
| BYTE addr[4]; | |
| } Ipv4Address; | |
| typedef struct tagIpv6Address { | |
| BYTE addr[16]; | |
| } Ipv6Address; | |
| typedef struct tagFixupInfo { | |
| FixupState state; | |
| Percentage percentage; | |
| ResultCodes resultCodes; | |
| MessageId fixupMsgId; | |
| } FixupInfo; | |
| typedef struct tagSystemHealthAgentState { | |
| SystemHealthEntityId id; | |
| ResultCodes shaResultCodes; | |
| FailureCategory failureCategory; | |
| FixupInfo fixupInfo; | |
| } SystemHealthAgentState; | |
| typedef struct tagSoHAttribute { | |
| UINT16 type; | |
| [range (0, maxSoHAttributeSize)] UINT16 size; | |
| [size_is (size)] BYTE *value; | |
| } SoHAttribute; | |
| typedef struct tagSoH { | |
| [range (0, maxSoHAttributeCount)] UINT16 count; | |
| [size_is (count)] SoHAttribute *attributes; | |
| } SoH, SoHRequest, SoHResponse; | |
| typedef struct tagNetworkSoH { | |
| [range (minNetworkSoHSize, maxNetworkSoHSize)] UINT16 size; | |
| [size_is (size)] BYTE *data; | |
| } NetworkSoH, NetworkSoHRequest, NetworkSoHResponse; | |
| typedef struct tagPrivateData { | |
| [range (0, maxPrivateDataSize)] UINT16 size; | |
| [size_is (size)] BYTE *data; | |
| } PrivateData; | |
| typedef struct tagNapComponentRegistrationInfo { | |
| NapComponentId id; | |
| CountedString friendlyName; | |
| CountedString description; | |
| CountedString version; | |
| CountedString vendorName; | |
| CLSID infoClsid; | |
| CLSID configClsid; | |
| FILETIME registrationDate; | |
| UINT32 componentType; | |
| } NapComponentRegistrationInfo; | |
| }; | |
| cpp_quote("#endif") | |