/**
* 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_NDATTRIB
#define _INC_NDATTRIB
#if (_WIN32_WINNT >= 0x0600)
/* In ndhelper.idl
typedef struct tagDIAG_SOCKADDR {
USHORT family;
CHAR data[126];
} DIAG_SOCKADDR, *PDIAG_SOCKADDR;
*/
#ifdef __cplusplus
extern "C" {
#endif
typedef struct tagDIAG_SOCKADDR DIAG_SOCKADDR;
typedef enum tagATTRIBUTE_TYPE {
AT_INVALID = 0,
AT_BOOLEAN,
AT_INT8,
AT_UINT8,
AT_INT16,
AT_UINT16,
AT_INT32,
AT_UINT32,
AT_INT64,
AT_UINT64,
AT_STRING,
AT_GUID,
AT_LIFE_TIME,
AT_SOCKADDR,
AT_OCTET_STRING
} ATTRIBUTE_TYPE;
typedef enum tagREPAIR_SCOPE {
RS_SYSTEM = 0,
RS_USER = 1,
RS_APPLICATION = 2,
RS_PROCESS = 3
} REPAIR_SCOPE;
typedef enum tagREPAIR_RISK {
RR_NOROLLBACK = 0,
RR_ROLLBACK = 1,
RR_NORISK = 2
} REPAIR_RISK;
typedef enum tagUI_INFO_TYPE {
UIT_NONE = 0,
UIT_SHELL_COMMAND,
UIT_HELP_PANE,
UIT_DUI
} UI_INFO_TYPE;
typedef enum tagPROBLEM_TYPE {
PT_LOW_HEALTH = 1,
PT_LOWER_HEALTH = 2,
PT_DOWN_STREAM_HEALTH = 4,
PT_HIGH_UTILIZATION = 8,
PT_HIGHER_UTILIZATION = 16,
PT_UP_STREAM_UTILIZATION = 32
} PROBLEM_TYPE;
typedef enum tagREPAIR_STATUS {
RS_NOT_IMPLEMENTED = 0,
RS_REPAIRED = 1,
RS_UNREPAIRED = 2,
RS_DEFERRED = 3,
RS_USER_ACTION = 4
} REPAIR_STATUS;
typedef struct tagLIFE_TIME {
FILETIME startTime;
FILETIME endTime;
} LIFE_TIME, *PLIFE_TIME;
typedef struct tagOCTET_STRING {
DWORD dwLength;
BYTE *lpValue;
} OCTET_STRING, *POCTET_STRING;
typedef struct tagUiInfo {
UI_INFO_TYPE type;
__C89_NAMELESS union {
LPWSTR pwzNull;
ShellCommandInfo ShellInfo;
LPWSTR pwzHelpURL;
LPWSTR pwzDui;
};
} UiInfo, *PUiInfo;
typedef struct tagRepairInfo {
GUID guid;
LPWSTR pwszClassName;
LPWSTR pwszDescription;
DWORD sidType;
__LONG32 cost;
ULONG flags;
REPAIR_SCOPE scope;
REPAIR_RISK risk;
UiInfo UiInfo;
} RepairInfo, *PRepairInfo;
typedef struct tagShellCommandInfo {
LPWSTR pwszOperation;
LPWSTR pwszFile;
LPWSTR pwszParameters;
LPWSTR pwszDirectory;
ULONG nShowCmd;
} ShellCommandInfo, *PShellCommandInfo;
typedef struct tagHELPER_ATTRIBUTE {
LPWSTR pwszName;
ATTRIBUTE_TYPE type;
__C89_NAMELESS union {
WINBOOL Boolean;
char Char;
byte Byte;
short Short;
WORD Word;
int Int;
DWORD DWord;
LONGLONG Int64;
ULONGLONG UInt64;
LPWSTR PWStr;
GUID Guid;
LIFE_TYPE LifeTime;
DIAG_SOCKADDR Address;
OCTET_STRING OctetString;
};
} HELPER_ATTRIBUTE;
#ifdef __cplusplus
}
#endif
#if (_WIN32_WINNT >= 0x0601)
#ifdef __cplusplus
extern "C" {
#endif
#define RCF_ISLEAF 0x1
#define RCF_ISCONFIRMED 0x2
#define RCF_ISTHIRDPARTY 0x4
typedef struct tagRepairInfoEx {
RepairInfo repair;
USHORT repairRank;
} RepairInfoEx, *PRepairInfoEx;
typedef struct tagRootCauseInfo {
LPWSTR pwszDescription;
GUID rootCauseID;
DWORD rootCauseFlags;
GUID networkInterfaceID;
RepairInfoEx *pRepairs;
USHORT repairCount;
} RootCauseInfo;
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0601)*/
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif /*_INC_NDATTRIB*/