blob: 06b714067e8351324fda30cdaa5d26efba48252c [file] [log] [blame]
/**
* 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")