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