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 12 typedef struct tagDIAG_SOCKADDR { 13 USHORT family; 14 CHAR data[126]; 15 } DIAG_SOCKADDR, *PDIAG_SOCKADDR; 16 */ 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 typedef struct tagDIAG_SOCKADDR DIAG_SOCKADDR; 23 24 typedef 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 42 typedef enum tagREPAIR_SCOPE { 43 RS_SYSTEM = 0, 44 RS_USER = 1, 45 RS_APPLICATION = 2, 46 RS_PROCESS = 3 47 } REPAIR_SCOPE; 48 49 typedef enum tagREPAIR_RISK { 50 RR_NOROLLBACK = 0, 51 RR_ROLLBACK = 1, 52 RR_NORISK = 2 53 } REPAIR_RISK; 54 55 typedef enum tagUI_INFO_TYPE { 56 UIT_NONE = 0, 57 UIT_SHELL_COMMAND, 58 UIT_HELP_PANE, 59 UIT_DUI 60 } UI_INFO_TYPE; 61 62 typedef 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 71 typedef 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 79 typedef struct tagLIFE_TIME { 80 FILETIME startTime; 81 FILETIME endTime; 82 } LIFE_TIME, *PLIFE_TIME; 83 84 typedef struct tagOCTET_STRING { 85 DWORD dwLength; 86 BYTE *lpValue; 87 } OCTET_STRING, *POCTET_STRING; 88 89 typedef 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 99 typedef 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 111 typedef struct tagShellCommandInfo { 112 LPWSTR pwszOperation; 113 LPWSTR pwszFile; 114 LPWSTR pwszParameters; 115 LPWSTR pwszDirectory; 116 ULONG nShowCmd; 117 } ShellCommandInfo, *PShellCommandInfo; 118 119 typedef 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 148 extern "C" { 149 #endif 150 151 #define RCF_ISLEAF 0x1 152 #define RCF_ISCONFIRMED 0x2 153 #define RCF_ISTHIRDPARTY 0x4 154 155 typedef struct tagRepairInfoEx { 156 RepairInfo repair; 157 USHORT repairRank; 158 } RepairInfoEx, *PRepairInfoEx; 159 160 typedef 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