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