master
  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