1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _INC_NDATTRIB 7#define _INC_NDATTRIB 8 9#if (_WIN32_WINNT >= 0x0600) 10 11/* In ndhelper.idl 12typedef struct tagDIAG_SOCKADDR { 13 USHORT family; 14 CHAR data[126]; 15} DIAG_SOCKADDR, *PDIAG_SOCKADDR; 16*/ 17 18#ifdef __cplusplus 19extern "C" { 20#endif 21 22typedef struct tagDIAG_SOCKADDR DIAG_SOCKADDR; 23 24typedef enum tagATTRIBUTE_TYPE { 25 AT_INVALID = 0, 26 AT_BOOLEAN, 27 AT_INT8, 28 AT_UINT8, 29 AT_INT16, 30 AT_UINT16, 31 AT_INT32, 32 AT_UINT32, 33 AT_INT64, 34 AT_UINT64, 35 AT_STRING, 36 AT_GUID, 37 AT_LIFE_TIME, 38 AT_SOCKADDR, 39 AT_OCTET_STRING 40} ATTRIBUTE_TYPE; 41 42typedef enum tagREPAIR_SCOPE { 43 RS_SYSTEM = 0, 44 RS_USER = 1, 45 RS_APPLICATION = 2, 46 RS_PROCESS = 3 47} REPAIR_SCOPE; 48 49typedef enum tagREPAIR_RISK { 50 RR_NOROLLBACK = 0, 51 RR_ROLLBACK = 1, 52 RR_NORISK = 2 53} REPAIR_RISK; 54 55typedef enum tagUI_INFO_TYPE { 56 UIT_NONE = 0, 57 UIT_SHELL_COMMAND, 58 UIT_HELP_PANE, 59 UIT_DUI 60} UI_INFO_TYPE; 61 62typedef enum tagPROBLEM_TYPE { 63 PT_LOW_HEALTH = 1, 64 PT_LOWER_HEALTH = 2, 65 PT_DOWN_STREAM_HEALTH = 4, 66 PT_HIGH_UTILIZATION = 8, 67 PT_HIGHER_UTILIZATION = 16, 68 PT_UP_STREAM_UTILIZATION = 32 69} PROBLEM_TYPE; 70 71typedef enum tagREPAIR_STATUS { 72 RS_NOT_IMPLEMENTED = 0, 73 RS_REPAIRED = 1, 74 RS_UNREPAIRED = 2, 75 RS_DEFERRED = 3, 76 RS_USER_ACTION = 4 77} REPAIR_STATUS; 78 79typedef struct tagLIFE_TIME { 80 FILETIME startTime; 81 FILETIME endTime; 82} LIFE_TIME, *PLIFE_TIME; 83 84typedef struct tagOCTET_STRING { 85 DWORD dwLength; 86 BYTE *lpValue; 87} OCTET_STRING, *POCTET_STRING; 88 89typedef struct tagUiInfo { 90 UI_INFO_TYPE type; 91 __C89_NAMELESS union { 92 LPWSTR pwzNull; 93 ShellCommandInfo ShellInfo; 94 LPWSTR pwzHelpURL; 95 LPWSTR pwzDui; 96 }; 97} UiInfo, *PUiInfo; 98 99typedef struct tagRepairInfo { 100 GUID guid; 101 LPWSTR pwszClassName; 102 LPWSTR pwszDescription; 103 DWORD sidType; 104 __LONG32 cost; 105 ULONG flags; 106 REPAIR_SCOPE scope; 107 REPAIR_RISK risk; 108 UiInfo UiInfo; 109} RepairInfo, *PRepairInfo; 110 111typedef struct tagShellCommandInfo { 112 LPWSTR pwszOperation; 113 LPWSTR pwszFile; 114 LPWSTR pwszParameters; 115 LPWSTR pwszDirectory; 116 ULONG nShowCmd; 117} ShellCommandInfo, *PShellCommandInfo; 118 119typedef struct tagHELPER_ATTRIBUTE { 120 LPWSTR pwszName; 121 ATTRIBUTE_TYPE type; 122 __C89_NAMELESS union { 123 WINBOOL Boolean; 124 char Char; 125 byte Byte; 126 short Short; 127 WORD Word; 128 int Int; 129 DWORD DWord; 130 LONGLONG Int64; 131 ULONGLONG UInt64; 132 LPWSTR PWStr; 133 GUID Guid; 134 LIFE_TYPE LifeTime; 135 DIAG_SOCKADDR Address; 136 OCTET_STRING OctetString; 137 }; 138} HELPER_ATTRIBUTE; 139 140#ifdef __cplusplus 141} 142#endif 143 144 145#if (_WIN32_WINNT >= 0x0601) 146 147#ifdef __cplusplus 148extern "C" { 149#endif 150 151#define RCF_ISLEAF 0x1 152#define RCF_ISCONFIRMED 0x2 153#define RCF_ISTHIRDPARTY 0x4 154 155typedef struct tagRepairInfoEx { 156 RepairInfo repair; 157 USHORT repairRank; 158} RepairInfoEx, *PRepairInfoEx; 159 160typedef struct tagRootCauseInfo { 161 LPWSTR pwszDescription; 162 GUID rootCauseID; 163 DWORD rootCauseFlags; 164 GUID networkInterfaceID; 165 RepairInfoEx *pRepairs; 166 USHORT repairCount; 167} RootCauseInfo; 168 169#ifdef __cplusplus 170} 171#endif 172 173#endif /*(_WIN32_WINNT >= 0x0601)*/ 174 175 176#endif /*(_WIN32_WINNT >= 0x0600)*/ 177 178#endif /*_INC_NDATTRIB*/ 179 180