Home | History | Annotate | Download | only in include
      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