Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
5.8 KiB

  1. #ifndef _wmi_h_
  2. #define _wmi_h_
  3. // MPIO_DRIVE_INFO - MPIO_DRIVE_INFO
  4. #define MPIO_DRIVE_INFOGuid \
  5. { 0xcb9d55b2,0xd833,0x4a4c, { 0x8c,0xaa,0x4a,0xee,0x3f,0x24,0x0e,0x9a } }
  6. DEFINE_GUID(MPIO_DRIVE_INFO_GUID, \
  7. 0xcb9d55b2,0xd833,0x4a4c,0x8c,0xaa,0x4a,0xee,0x3f,0x24,0x0e,0x9a);
  8. typedef struct _MPIO_DRIVE_INFO
  9. {
  10. //
  11. ULONG NumberPaths;
  12. #define MPIO_DRIVE_INFO_NumberPaths_SIZE sizeof(ULONG)
  13. #define MPIO_DRIVE_INFO_NumberPaths_ID 1
  14. //
  15. WCHAR Name[63 + 1];
  16. #define MPIO_DRIVE_INFO_Name_ID 2
  17. //
  18. WCHAR SerialNumber[63 + 1];
  19. #define MPIO_DRIVE_INFO_SerialNumber_ID 3
  20. //
  21. WCHAR DsmName[63 + 1];
  22. #define MPIO_DRIVE_INFO_DsmName_ID 4
  23. } MPIO_DRIVE_INFO, *PMPIO_DRIVE_INFO;
  24. // MPIO_DISK_INFO - MPIO_DISK_INFO
  25. // Multi-Path Device List
  26. #define MPIO_DISK_INFOGuid \
  27. { 0x9f9765ed,0xc3a0,0x451f, { 0x86,0xc1,0x47,0x0a,0x1d,0xdd,0x32,0x17 } }
  28. DEFINE_GUID(MPIO_DISK_INFO_GUID, \
  29. 0x9f9765ed,0xc3a0,0x451f,0x86,0xc1,0x47,0x0a,0x1d,0xdd,0x32,0x17);
  30. typedef struct _MPIO_DISK_INFO
  31. {
  32. // Number of Multi-Path Drives.
  33. ULONG NumberDrives;
  34. #define MPIO_DISK_INFO_NumberDrives_SIZE sizeof(ULONG)
  35. #define MPIO_DISK_INFO_NumberDrives_ID 1
  36. // Multi-Path Drive Info Array.
  37. MPIO_DRIVE_INFO DriveInfo[1];
  38. #define MPIO_DISK_INFO_DriveInfo_ID 2
  39. } MPIO_DISK_INFO, *PMPIO_DISK_INFO;
  40. // MPIO_ADAPTER_INFORMATION - MPIO_ADAPTER_INFORMATION
  41. #define MPIO_ADAPTER_INFORMATIONGuid \
  42. { 0xb87c0fec,0x88b7,0x451d, { 0xa3,0x78,0x38,0x7b,0xa6,0x1a,0xeb,0x89 } }
  43. DEFINE_GUID(MPIO_ADAPTER_INFORMATION_GUID, \
  44. 0xb87c0fec,0x88b7,0x451d,0xa3,0x78,0x38,0x7b,0xa6,0x1a,0xeb,0x89);
  45. typedef struct _MPIO_ADAPTER_INFORMATION
  46. {
  47. //
  48. ULONGLONG PathId;
  49. #define MPIO_ADAPTER_INFORMATION_PathId_SIZE sizeof(ULONGLONG)
  50. #define MPIO_ADAPTER_INFORMATION_PathId_ID 1
  51. //
  52. UCHAR BusNumber;
  53. #define MPIO_ADAPTER_INFORMATION_BusNumber_SIZE sizeof(UCHAR)
  54. #define MPIO_ADAPTER_INFORMATION_BusNumber_ID 2
  55. //
  56. UCHAR DeviceNumber;
  57. #define MPIO_ADAPTER_INFORMATION_DeviceNumber_SIZE sizeof(UCHAR)
  58. #define MPIO_ADAPTER_INFORMATION_DeviceNumber_ID 3
  59. //
  60. UCHAR FunctionNumber;
  61. #define MPIO_ADAPTER_INFORMATION_FunctionNumber_SIZE sizeof(UCHAR)
  62. #define MPIO_ADAPTER_INFORMATION_FunctionNumber_ID 4
  63. //
  64. UCHAR Pad;
  65. #define MPIO_ADAPTER_INFORMATION_Pad_SIZE sizeof(UCHAR)
  66. #define MPIO_ADAPTER_INFORMATION_Pad_ID 5
  67. //
  68. WCHAR AdapterName[63 + 1];
  69. #define MPIO_ADAPTER_INFORMATION_AdapterName_ID 6
  70. } MPIO_ADAPTER_INFORMATION, *PMPIO_ADAPTER_INFORMATION;
  71. // MPIO_PATH_INFORMATION - MPIO_PATH_INFORMATION
  72. // Multi-Path Path Information.
  73. #define MPIO_PATH_INFORMATIONGuid \
  74. { 0xb3a05997,0x2077,0x40a3, { 0xbf,0x36,0xeb,0xd9,0x1f,0xf8,0xb2,0x54 } }
  75. DEFINE_GUID(MPIO_PATH_INFORMATION_GUID, \
  76. 0xb3a05997,0x2077,0x40a3,0xbf,0x36,0xeb,0xd9,0x1f,0xf8,0xb2,0x54);
  77. typedef struct _MPIO_PATH_INFORMATION
  78. {
  79. // Number of Paths in use
  80. ULONG NumberPaths;
  81. #define MPIO_PATH_INFORMATION_NumberPaths_SIZE sizeof(ULONG)
  82. #define MPIO_PATH_INFORMATION_NumberPaths_ID 1
  83. // Array of Adapter/Path Information.
  84. MPIO_ADAPTER_INFORMATION PathList[1];
  85. #define MPIO_PATH_INFORMATION_PathList_ID 2
  86. } MPIO_PATH_INFORMATION, *PMPIO_PATH_INFORMATION;
  87. // MPIO_CONTROLLER_INFO - MPIO_CONTROLLER_INFO
  88. #define MPIO_CONTROLLER_INFOGuid \
  89. { 0xe732405b,0xb15e,0x4872, { 0xaf,0xd0,0x0d,0xf6,0x9d,0xc1,0xbb,0x01 } }
  90. DEFINE_GUID(MPIO_CONTROLLER_INFO_GUID, \
  91. 0xe732405b,0xb15e,0x4872,0xaf,0xd0,0x0d,0xf6,0x9d,0xc1,0xbb,0x01);
  92. typedef struct _MPIO_CONTROLLER_INFO
  93. {
  94. //
  95. ULONGLONG ControllerId;
  96. #define MPIO_CONTROLLER_INFO_ControllerId_SIZE sizeof(ULONGLONG)
  97. #define MPIO_CONTROLLER_INFO_ControllerId_ID 1
  98. //
  99. ULONG ControllerState;
  100. #define MPIO_CONTROLLER_INFO_ControllerState_SIZE sizeof(ULONG)
  101. #define MPIO_CONTROLLER_INFO_ControllerState_ID 2
  102. //
  103. WCHAR AssociatedDsm[63 + 1];
  104. #define MPIO_CONTROLLER_INFO_AssociatedDsm_ID 3
  105. } MPIO_CONTROLLER_INFO, *PMPIO_CONTROLLER_INFO;
  106. // MPIO_CONTROLLER_CONFIGURATION - MPIO_CONTROLLER_CONFIGURATION
  107. // Array Controller Information.
  108. #define MPIO_CONTROLLER_CONFIGURATIONGuid \
  109. { 0xcf07da2c,0xe598,0x45d2, { 0x9d,0x78,0x75,0xc3,0x8b,0x81,0x64,0xe8 } }
  110. DEFINE_GUID(MPIO_CONTROLLER_CONFIGURATION_GUID, \
  111. 0xcf07da2c,0xe598,0x45d2,0x9d,0x78,0x75,0xc3,0x8b,0x81,0x64,0xe8);
  112. typedef struct _MPIO_CONTROLLER_CONFIGURATION
  113. {
  114. // Number of Controllers.
  115. ULONG NumberControllers;
  116. #define MPIO_CONTROLLER_CONFIGURATION_NumberControllers_SIZE sizeof(ULONG)
  117. #define MPIO_CONTROLLER_CONFIGURATION_NumberControllers_ID 1
  118. // Array of Controller Information Structures.
  119. MPIO_CONTROLLER_INFO ControllerInfo[1];
  120. #define MPIO_CONTROLLER_CONFIGURATION_ControllerInfo_ID 2
  121. } MPIO_CONTROLLER_CONFIGURATION, *PMPIO_CONTROLLER_CONFIGURATION;
  122. // MPIO_EventEntry - MPIO_EventEntry
  123. // MultiPath Event Logger
  124. #define MPIO_EventEntryGuid \
  125. { 0x2abb031a,0x71aa,0x46d4, { 0xa5,0x3f,0xea,0xe3,0x40,0x51,0xe3,0x57 } }
  126. DEFINE_GUID(MPIO_EventEntry_GUID, \
  127. 0x2abb031a,0x71aa,0x46d4,0xa5,0x3f,0xea,0xe3,0x40,0x51,0xe3,0x57);
  128. typedef struct _MPIO_EventEntry
  129. {
  130. // Time Stamp
  131. ULONGLONG TimeStamp;
  132. #define MPIO_EventEntry_TimeStamp_SIZE sizeof(ULONGLONG)
  133. #define MPIO_EventEntry_TimeStamp_ID 1
  134. // Fatal Error
  135. #define MPIO_FATAL_ERROR 1
  136. // Error
  137. #define MPIO_ERROR 2
  138. // Warning
  139. #define MPIO_WARNING 3
  140. // Information
  141. #define MPIO_INFORMATION 4
  142. //
  143. ULONG Severity;
  144. #define MPIO_EventEntry_Severity_SIZE sizeof(ULONG)
  145. #define MPIO_EventEntry_Severity_ID 2
  146. // Component
  147. WCHAR Component[63 + 1];
  148. #define MPIO_EventEntry_Component_ID 3
  149. // Event Description
  150. WCHAR EventDescription[63 + 1];
  151. #define MPIO_EventEntry_EventDescription_ID 4
  152. } MPIO_EventEntry, *PMPIO_EventEntry;
  153. #endif