|  | /** | 
|  | * 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") | 
|  |  |