807 lines
23 KiB
C
807 lines
23 KiB
C
|
#ifndef _mpiowmi_h_
|
||
|
#define _mpiowmi_h_
|
||
|
|
||
|
// MPIO_PATH_HEALTH_CLASS - MPIO_PATH_HEALTH_CLASS
|
||
|
#define MPIO_PATH_HEALTH_CLASSGuid \
|
||
|
{ 0xea0f7134,0x269e,0x44ca, { 0xb3,0x50,0x7c,0x7e,0xbe,0xba,0x8b,0xbc } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_PATH_HEALTH_CLASS_GUID, \
|
||
|
0xea0f7134,0x269e,0x44ca,0xb3,0x50,0x7c,0x7e,0xbe,0xba,0x8b,0xbc);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_PATH_HEALTH_CLASS
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG PathId;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_PathId_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_PathId_ID 1
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberReads;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberReads_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberReads_ID 2
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberWrites;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberWrites_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberWrites_ID 3
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberBytesRead;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesRead_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesRead_ID 4
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberBytesWritten;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesWritten_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesWritten_ID 5
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberRetries;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberRetries_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberRetries_ID 6
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberIoErrors;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberIoErrors_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberIoErrors_ID 7
|
||
|
|
||
|
//
|
||
|
ULONGLONG CreateTime;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_CreateTime_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_CreateTime_ID 8
|
||
|
|
||
|
//
|
||
|
ULONGLONG FailTime;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_FailTime_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_FailTime_ID 9
|
||
|
|
||
|
//
|
||
|
BOOLEAN PathOffline;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_PathOffline_SIZE sizeof(BOOLEAN)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_PathOffline_ID 10
|
||
|
|
||
|
//
|
||
|
UCHAR NumberReadsWrap;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberReadsWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberReadsWrap_ID 11
|
||
|
|
||
|
//
|
||
|
UCHAR NumberWritesWrap;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberWritesWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberWritesWrap_ID 12
|
||
|
|
||
|
//
|
||
|
UCHAR NumberBytesReadWrap;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesReadWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesReadWrap_ID 13
|
||
|
|
||
|
//
|
||
|
UCHAR NumberBytesWrittenWrap;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesWrittenWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_NumberBytesWrittenWrap_ID 14
|
||
|
|
||
|
//
|
||
|
UCHAR OutstandingRequests;
|
||
|
#define MPIO_PATH_HEALTH_CLASS_OutstandingRequests_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_PATH_HEALTH_CLASS_OutstandingRequests_ID 15
|
||
|
|
||
|
//
|
||
|
UCHAR Pad[2];
|
||
|
#define MPIO_PATH_HEALTH_CLASS_Pad_SIZE sizeof(UCHAR[2])
|
||
|
#define MPIO_PATH_HEALTH_CLASS_Pad_ID 16
|
||
|
|
||
|
} MPIO_PATH_HEALTH_CLASS, *PMPIO_PATH_HEALTH_CLASS;
|
||
|
|
||
|
#define MPIO_PATH_HEALTH_CLASS_SIZE (FIELD_OFFSET(MPIO_PATH_HEALTH_CLASS, Pad) + MPIO_PATH_HEALTH_CLASS_Pad_SIZE)
|
||
|
|
||
|
// MPIO_PATH_HEALTH_INFO - MPIO_PATH_HEALTH_INFO
|
||
|
#define MPIO_PATH_HEALTH_INFOGuid \
|
||
|
{ 0x01ea1dfb,0x668b,0x48bc, { 0xa8,0x6e,0xa8,0xb4,0xca,0xbf,0xce,0x33 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_PATH_HEALTH_INFO_GUID, \
|
||
|
0x01ea1dfb,0x668b,0x48bc,0xa8,0x6e,0xa8,0xb4,0xca,0xbf,0xce,0x33);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_PATH_HEALTH_INFO
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberPathPackets;
|
||
|
#define MPIO_PATH_HEALTH_INFO_NumberPathPackets_SIZE sizeof(ULONG)
|
||
|
#define MPIO_PATH_HEALTH_INFO_NumberPathPackets_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define MPIO_PATH_HEALTH_INFO_Reserved_SIZE sizeof(ULONG)
|
||
|
#define MPIO_PATH_HEALTH_INFO_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
MPIO_PATH_HEALTH_CLASS PathHealthPackets[1];
|
||
|
#define MPIO_PATH_HEALTH_INFO_PathHealthPackets_ID 3
|
||
|
|
||
|
} MPIO_PATH_HEALTH_INFO, *PMPIO_PATH_HEALTH_INFO;
|
||
|
|
||
|
// MPIO_DISK_HEALTH_CLASS - MPIO_DISK_HEALTH_CLASS
|
||
|
#define MPIO_DISK_HEALTH_CLASSGuid \
|
||
|
{ 0x6453c476,0x0499,0x42ab, { 0x98,0x25,0x51,0x33,0x28,0x2b,0x0b,0x56 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DISK_HEALTH_CLASS_GUID, \
|
||
|
0x6453c476,0x0499,0x42ab,0x98,0x25,0x51,0x33,0x28,0x2b,0x0b,0x56);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DISK_HEALTH_CLASS
|
||
|
{
|
||
|
//
|
||
|
WCHAR Name[63 + 1];
|
||
|
#define MPIO_DISK_HEALTH_CLASS_Name_ID 1
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberReads;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberReads_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberReads_ID 2
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberWrites;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberWrites_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberWrites_ID 3
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberBytesRead;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesRead_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesRead_ID 4
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberBytesWritten;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesWritten_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesWritten_ID 5
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberRetries;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberRetries_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberRetries_ID 6
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberIoErrors;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberIoErrors_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberIoErrors_ID 7
|
||
|
|
||
|
//
|
||
|
ULONGLONG CreateTime;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_CreateTime_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_CreateTime_ID 8
|
||
|
|
||
|
//
|
||
|
ULONGLONG PathFailures;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_PathFailures_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_PathFailures_ID 9
|
||
|
|
||
|
//
|
||
|
ULONGLONG FailTime;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_FailTime_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_FailTime_ID 10
|
||
|
|
||
|
//
|
||
|
BOOLEAN DeviceOffline;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_DeviceOffline_SIZE sizeof(BOOLEAN)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_DeviceOffline_ID 11
|
||
|
|
||
|
//
|
||
|
UCHAR NumberReadsWrap;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberReadsWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberReadsWrap_ID 12
|
||
|
|
||
|
//
|
||
|
UCHAR NumberWritesWrap;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberWritesWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberWritesWrap_ID 13
|
||
|
|
||
|
//
|
||
|
UCHAR NumberBytesReadWrap;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesReadWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesReadWrap_ID 14
|
||
|
|
||
|
//
|
||
|
UCHAR NumberBytesWrittenWrap;
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesWrittenWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DISK_HEALTH_CLASS_NumberBytesWrittenWrap_ID 15
|
||
|
|
||
|
//
|
||
|
UCHAR Pad[3];
|
||
|
#define MPIO_DISK_HEALTH_CLASS_Pad_SIZE sizeof(UCHAR[3])
|
||
|
#define MPIO_DISK_HEALTH_CLASS_Pad_ID 16
|
||
|
|
||
|
} MPIO_DISK_HEALTH_CLASS, *PMPIO_DISK_HEALTH_CLASS;
|
||
|
|
||
|
#define MPIO_DISK_HEALTH_CLASS_SIZE (FIELD_OFFSET(MPIO_DISK_HEALTH_CLASS, Pad) + MPIO_DISK_HEALTH_CLASS_Pad_SIZE)
|
||
|
|
||
|
// MPIO_DISK_HEALTH_INFO - MPIO_DISK_HEALTH_INFO
|
||
|
#define MPIO_DISK_HEALTH_INFOGuid \
|
||
|
{ 0xef04568a,0x782b,0x443c, { 0xa3,0xdb,0x96,0x6a,0xb4,0x37,0x75,0xf9 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DISK_HEALTH_INFO_GUID, \
|
||
|
0xef04568a,0x782b,0x443c,0xa3,0xdb,0x96,0x6a,0xb4,0x37,0x75,0xf9);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DISK_HEALTH_INFO
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberDiskPackets;
|
||
|
#define MPIO_DISK_HEALTH_INFO_NumberDiskPackets_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DISK_HEALTH_INFO_NumberDiskPackets_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define MPIO_DISK_HEALTH_INFO_Reserved_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DISK_HEALTH_INFO_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
MPIO_DISK_HEALTH_CLASS DiskHealthPackets[1];
|
||
|
#define MPIO_DISK_HEALTH_INFO_DiskHealthPackets_ID 3
|
||
|
|
||
|
} MPIO_DISK_HEALTH_INFO, *PMPIO_DISK_HEALTH_INFO;
|
||
|
|
||
|
// SCSI_ADDR - SCSI_ADDR
|
||
|
#define SCSI_ADDRGuid \
|
||
|
{ 0xc74aece4,0x468b,0x4113, { 0xb0,0x06,0x0c,0xec,0xdc,0x96,0x8a,0xc4 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(SCSI_ADDR_GUID, \
|
||
|
0xc74aece4,0x468b,0x4113,0xb0,0x06,0x0c,0xec,0xdc,0x96,0x8a,0xc4);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _SCSI_ADDR
|
||
|
{
|
||
|
//
|
||
|
UCHAR PortNumber;
|
||
|
#define SCSI_ADDR_PortNumber_SIZE sizeof(UCHAR)
|
||
|
#define SCSI_ADDR_PortNumber_ID 1
|
||
|
|
||
|
//
|
||
|
UCHAR ScsiPathId;
|
||
|
#define SCSI_ADDR_ScsiPathId_SIZE sizeof(UCHAR)
|
||
|
#define SCSI_ADDR_ScsiPathId_ID 2
|
||
|
|
||
|
//
|
||
|
UCHAR TargetId;
|
||
|
#define SCSI_ADDR_TargetId_SIZE sizeof(UCHAR)
|
||
|
#define SCSI_ADDR_TargetId_ID 3
|
||
|
|
||
|
//
|
||
|
UCHAR Lun;
|
||
|
#define SCSI_ADDR_Lun_SIZE sizeof(UCHAR)
|
||
|
#define SCSI_ADDR_Lun_ID 4
|
||
|
|
||
|
} SCSI_ADDR, *PSCSI_ADDR;
|
||
|
|
||
|
#define SCSI_ADDR_SIZE (FIELD_OFFSET(SCSI_ADDR, Lun) + SCSI_ADDR_Lun_SIZE)
|
||
|
|
||
|
// MPIO_DRIVE_INFO - MPIO_DRIVE_INFO
|
||
|
#define MPIO_DRIVE_INFOGuid \
|
||
|
{ 0xcb9d55b2,0xd833,0x4a4c, { 0x8c,0xaa,0x4a,0xee,0x3f,0x24,0x0e,0x9a } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DRIVE_INFO_GUID, \
|
||
|
0xcb9d55b2,0xd833,0x4a4c,0x8c,0xaa,0x4a,0xee,0x3f,0x24,0x0e,0x9a);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DRIVE_INFO
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberPaths;
|
||
|
#define MPIO_DRIVE_INFO_NumberPaths_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DRIVE_INFO_NumberPaths_ID 1
|
||
|
|
||
|
//
|
||
|
WCHAR Name[63 + 1];
|
||
|
#define MPIO_DRIVE_INFO_Name_ID 2
|
||
|
|
||
|
//
|
||
|
WCHAR SerialNumber[63 + 1];
|
||
|
#define MPIO_DRIVE_INFO_SerialNumber_ID 3
|
||
|
|
||
|
//
|
||
|
WCHAR DsmName[63 + 1];
|
||
|
#define MPIO_DRIVE_INFO_DsmName_ID 4
|
||
|
|
||
|
} MPIO_DRIVE_INFO, *PMPIO_DRIVE_INFO;
|
||
|
|
||
|
// MPIO_DISK_INFO - MPIO_DISK_INFO
|
||
|
#define MPIO_DISK_INFOGuid \
|
||
|
{ 0x9f9765ed,0xc3a0,0x451f, { 0x86,0xc1,0x47,0x0a,0x1d,0xdd,0x32,0x17 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DISK_INFO_GUID, \
|
||
|
0x9f9765ed,0xc3a0,0x451f,0x86,0xc1,0x47,0x0a,0x1d,0xdd,0x32,0x17);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DISK_INFO
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberDrives;
|
||
|
#define MPIO_DISK_INFO_NumberDrives_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DISK_INFO_NumberDrives_ID 1
|
||
|
|
||
|
//
|
||
|
MPIO_DRIVE_INFO DriveInfo[1];
|
||
|
#define MPIO_DISK_INFO_DriveInfo_ID 2
|
||
|
|
||
|
} MPIO_DISK_INFO, *PMPIO_DISK_INFO;
|
||
|
|
||
|
// DSM_VERSION - DSM_VERSION
|
||
|
#define DSM_VERSIONGuid \
|
||
|
{ 0x7cc0ae8e,0xf30d,0x4ecd, { 0xa3,0xc6,0x5b,0xee,0x8d,0xe6,0x1d,0x48 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_VERSION_GUID, \
|
||
|
0x7cc0ae8e,0xf30d,0x4ecd,0xa3,0xc6,0x5b,0xee,0x8d,0xe6,0x1d,0x48);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_VERSION
|
||
|
{
|
||
|
//
|
||
|
ULONG MajorVersion;
|
||
|
#define DSM_VERSION_MajorVersion_SIZE sizeof(ULONG)
|
||
|
#define DSM_VERSION_MajorVersion_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG MinorVersion;
|
||
|
#define DSM_VERSION_MinorVersion_SIZE sizeof(ULONG)
|
||
|
#define DSM_VERSION_MinorVersion_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG ProductBuild;
|
||
|
#define DSM_VERSION_ProductBuild_SIZE sizeof(ULONG)
|
||
|
#define DSM_VERSION_ProductBuild_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG QfeNumber;
|
||
|
#define DSM_VERSION_QfeNumber_SIZE sizeof(ULONG)
|
||
|
#define DSM_VERSION_QfeNumber_ID 4
|
||
|
|
||
|
} DSM_VERSION, *PDSM_VERSION;
|
||
|
|
||
|
#define DSM_VERSION_SIZE (FIELD_OFFSET(DSM_VERSION, QfeNumber) + DSM_VERSION_QfeNumber_SIZE)
|
||
|
|
||
|
// DSM_COUNTERS - DSM_COUNTERS
|
||
|
#define DSM_COUNTERSGuid \
|
||
|
{ 0x39026ae4,0x9e81,0x468b, { 0x81,0x9c,0x25,0x34,0x48,0x12,0x7f,0xd5 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_COUNTERS_GUID, \
|
||
|
0x39026ae4,0x9e81,0x468b,0x81,0x9c,0x25,0x34,0x48,0x12,0x7f,0xd5);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_COUNTERS
|
||
|
{
|
||
|
//
|
||
|
ULONG PathVerifyEnabled;
|
||
|
#define DSM_COUNTERS_PathVerifyEnabled_SIZE sizeof(ULONG)
|
||
|
#define DSM_COUNTERS_PathVerifyEnabled_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG PathVerificationPeriod;
|
||
|
#define DSM_COUNTERS_PathVerificationPeriod_SIZE sizeof(ULONG)
|
||
|
#define DSM_COUNTERS_PathVerificationPeriod_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG PDORemovePeriod;
|
||
|
#define DSM_COUNTERS_PDORemovePeriod_SIZE sizeof(ULONG)
|
||
|
#define DSM_COUNTERS_PDORemovePeriod_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG RetryCount;
|
||
|
#define DSM_COUNTERS_RetryCount_SIZE sizeof(ULONG)
|
||
|
#define DSM_COUNTERS_RetryCount_ID 4
|
||
|
|
||
|
//
|
||
|
ULONG RetryInterval;
|
||
|
#define DSM_COUNTERS_RetryInterval_SIZE sizeof(ULONG)
|
||
|
#define DSM_COUNTERS_RetryInterval_ID 5
|
||
|
|
||
|
//
|
||
|
ULONG Reserved32;
|
||
|
#define DSM_COUNTERS_Reserved32_SIZE sizeof(ULONG)
|
||
|
#define DSM_COUNTERS_Reserved32_ID 6
|
||
|
|
||
|
//
|
||
|
ULONGLONG Reserved64;
|
||
|
#define DSM_COUNTERS_Reserved64_SIZE sizeof(ULONGLONG)
|
||
|
#define DSM_COUNTERS_Reserved64_ID 7
|
||
|
|
||
|
} DSM_COUNTERS, *PDSM_COUNTERS;
|
||
|
|
||
|
#define DSM_COUNTERS_SIZE (FIELD_OFFSET(DSM_COUNTERS, Reserved64) + DSM_COUNTERS_Reserved64_SIZE)
|
||
|
|
||
|
// DSM_PARAMETERS - DSM_PARAMETERS
|
||
|
#define DSM_PARAMETERSGuid \
|
||
|
{ 0x695df15f,0x9bd1,0x49f7, { 0xbe,0xbb,0x16,0xde,0xbd,0x15,0x11,0xcb } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_PARAMETERS_GUID, \
|
||
|
0x695df15f,0x9bd1,0x49f7,0xbe,0xbb,0x16,0xde,0xbd,0x15,0x11,0xcb);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_PARAMETERS
|
||
|
{
|
||
|
//
|
||
|
WCHAR DsmName[63 + 1];
|
||
|
#define DSM_PARAMETERS_DsmName_ID 1
|
||
|
|
||
|
//
|
||
|
ULONGLONG DsmContext;
|
||
|
#define DSM_PARAMETERS_DsmContext_SIZE sizeof(ULONGLONG)
|
||
|
#define DSM_PARAMETERS_DsmContext_ID 2
|
||
|
|
||
|
//
|
||
|
DSM_VERSION DsmVersion;
|
||
|
#define DSM_PARAMETERS_DsmVersion_SIZE sizeof(DSM_VERSION)
|
||
|
#define DSM_PARAMETERS_DsmVersion_ID 3
|
||
|
|
||
|
//
|
||
|
DSM_COUNTERS DsmCounters;
|
||
|
#define DSM_PARAMETERS_DsmCounters_SIZE sizeof(DSM_COUNTERS)
|
||
|
#define DSM_PARAMETERS_DsmCounters_ID 4
|
||
|
|
||
|
} DSM_PARAMETERS, *PDSM_PARAMETERS;
|
||
|
|
||
|
#define DSM_PARAMETERS_SIZE (FIELD_OFFSET(DSM_PARAMETERS, DsmCounters) + DSM_PARAMETERS_DsmCounters_SIZE)
|
||
|
|
||
|
// MPIO_REGISTERED_DSM - MPIO_REGISTERED_DSM
|
||
|
#define MPIO_REGISTERED_DSMGuid \
|
||
|
{ 0x0c2c484b,0x030b,0x4540, { 0x88,0x90,0xbb,0x66,0x81,0x94,0x1c,0xe3 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_REGISTERED_DSM_GUID, \
|
||
|
0x0c2c484b,0x030b,0x4540,0x88,0x90,0xbb,0x66,0x81,0x94,0x1c,0xe3);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_REGISTERED_DSM
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberDSMs;
|
||
|
#define MPIO_REGISTERED_DSM_NumberDSMs_SIZE sizeof(ULONG)
|
||
|
#define MPIO_REGISTERED_DSM_NumberDSMs_ID 1
|
||
|
|
||
|
//
|
||
|
DSM_PARAMETERS DsmParameters[1];
|
||
|
#define MPIO_REGISTERED_DSM_DsmParameters_ID 2
|
||
|
|
||
|
} MPIO_REGISTERED_DSM, *PMPIO_REGISTERED_DSM;
|
||
|
|
||
|
// MPIO_ADAPTER_INFORMATION - MPIO_ADAPTER_INFORMATION
|
||
|
#define MPIO_ADAPTER_INFORMATIONGuid \
|
||
|
{ 0xb87c0fec,0x88b7,0x451d, { 0xa3,0x78,0x38,0x7b,0xa6,0x1a,0xeb,0x89 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_ADAPTER_INFORMATION_GUID, \
|
||
|
0xb87c0fec,0x88b7,0x451d,0xa3,0x78,0x38,0x7b,0xa6,0x1a,0xeb,0x89);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_ADAPTER_INFORMATION
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG PathId;
|
||
|
#define MPIO_ADAPTER_INFORMATION_PathId_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_ADAPTER_INFORMATION_PathId_ID 1
|
||
|
|
||
|
//
|
||
|
UCHAR BusNumber;
|
||
|
#define MPIO_ADAPTER_INFORMATION_BusNumber_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_ADAPTER_INFORMATION_BusNumber_ID 2
|
||
|
|
||
|
//
|
||
|
UCHAR DeviceNumber;
|
||
|
#define MPIO_ADAPTER_INFORMATION_DeviceNumber_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_ADAPTER_INFORMATION_DeviceNumber_ID 3
|
||
|
|
||
|
//
|
||
|
UCHAR FunctionNumber;
|
||
|
#define MPIO_ADAPTER_INFORMATION_FunctionNumber_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_ADAPTER_INFORMATION_FunctionNumber_ID 4
|
||
|
|
||
|
//
|
||
|
UCHAR Pad;
|
||
|
#define MPIO_ADAPTER_INFORMATION_Pad_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_ADAPTER_INFORMATION_Pad_ID 5
|
||
|
|
||
|
//
|
||
|
WCHAR AdapterName[63 + 1];
|
||
|
#define MPIO_ADAPTER_INFORMATION_AdapterName_ID 6
|
||
|
|
||
|
} MPIO_ADAPTER_INFORMATION, *PMPIO_ADAPTER_INFORMATION;
|
||
|
|
||
|
// MPIO_PATH_INFORMATION - MPIO_PATH_INFORMATION
|
||
|
#define MPIO_PATH_INFORMATIONGuid \
|
||
|
{ 0xb3a05997,0x2077,0x40a3, { 0xbf,0x36,0xeb,0xd9,0x1f,0xf8,0xb2,0x54 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_PATH_INFORMATION_GUID, \
|
||
|
0xb3a05997,0x2077,0x40a3,0xbf,0x36,0xeb,0xd9,0x1f,0xf8,0xb2,0x54);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_PATH_INFORMATION
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberPaths;
|
||
|
#define MPIO_PATH_INFORMATION_NumberPaths_SIZE sizeof(ULONG)
|
||
|
#define MPIO_PATH_INFORMATION_NumberPaths_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Pad;
|
||
|
#define MPIO_PATH_INFORMATION_Pad_SIZE sizeof(ULONG)
|
||
|
#define MPIO_PATH_INFORMATION_Pad_ID 2
|
||
|
|
||
|
//
|
||
|
MPIO_ADAPTER_INFORMATION PathList[1];
|
||
|
#define MPIO_PATH_INFORMATION_PathList_ID 3
|
||
|
|
||
|
} MPIO_PATH_INFORMATION, *PMPIO_PATH_INFORMATION;
|
||
|
|
||
|
// MPIO_CONTROLLER_INFO - MPIO_CONTROLLER_INFO
|
||
|
#define MPIO_CONTROLLER_INFOGuid \
|
||
|
{ 0xe732405b,0xb15e,0x4872, { 0xaf,0xd0,0x0d,0xf6,0x9d,0xc1,0xbb,0x01 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_CONTROLLER_INFO_GUID, \
|
||
|
0xe732405b,0xb15e,0x4872,0xaf,0xd0,0x0d,0xf6,0x9d,0xc1,0xbb,0x01);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_CONTROLLER_INFO
|
||
|
{
|
||
|
//
|
||
|
ULONG IdentifierType;
|
||
|
#define MPIO_CONTROLLER_INFO_IdentifierType_SIZE sizeof(ULONG)
|
||
|
#define MPIO_CONTROLLER_INFO_IdentifierType_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG IdentifierLength;
|
||
|
#define MPIO_CONTROLLER_INFO_IdentifierLength_SIZE sizeof(ULONG)
|
||
|
#define MPIO_CONTROLLER_INFO_IdentifierLength_ID 2
|
||
|
|
||
|
//
|
||
|
UCHAR Identifier[32];
|
||
|
#define MPIO_CONTROLLER_INFO_Identifier_SIZE sizeof(UCHAR[32])
|
||
|
#define MPIO_CONTROLLER_INFO_Identifier_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG ControllerState;
|
||
|
#define MPIO_CONTROLLER_INFO_ControllerState_SIZE sizeof(ULONG)
|
||
|
#define MPIO_CONTROLLER_INFO_ControllerState_ID 4
|
||
|
|
||
|
//
|
||
|
ULONG Pad;
|
||
|
#define MPIO_CONTROLLER_INFO_Pad_SIZE sizeof(ULONG)
|
||
|
#define MPIO_CONTROLLER_INFO_Pad_ID 5
|
||
|
|
||
|
//
|
||
|
WCHAR AssociatedDsm[63 + 1];
|
||
|
#define MPIO_CONTROLLER_INFO_AssociatedDsm_ID 6
|
||
|
|
||
|
} MPIO_CONTROLLER_INFO, *PMPIO_CONTROLLER_INFO;
|
||
|
|
||
|
// MPIO_CONTROLLER_CONFIGURATION - MPIO_CONTROLLER_CONFIGURATION
|
||
|
#define MPIO_CONTROLLER_CONFIGURATIONGuid \
|
||
|
{ 0xcf07da2c,0xe598,0x45d2, { 0x9d,0x78,0x75,0xc3,0x8b,0x81,0x64,0xe8 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_CONTROLLER_CONFIGURATION_GUID, \
|
||
|
0xcf07da2c,0xe598,0x45d2,0x9d,0x78,0x75,0xc3,0x8b,0x81,0x64,0xe8);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_CONTROLLER_CONFIGURATION
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberControllers;
|
||
|
#define MPIO_CONTROLLER_CONFIGURATION_NumberControllers_SIZE sizeof(ULONG)
|
||
|
#define MPIO_CONTROLLER_CONFIGURATION_NumberControllers_ID 1
|
||
|
|
||
|
//
|
||
|
MPIO_CONTROLLER_INFO ControllerInfo[1];
|
||
|
#define MPIO_CONTROLLER_CONFIGURATION_ControllerInfo_ID 2
|
||
|
|
||
|
} MPIO_CONTROLLER_CONFIGURATION, *PMPIO_CONTROLLER_CONFIGURATION;
|
||
|
|
||
|
// MPIO_TIMERS_COUNTERS - MPIO_TIMERS_COUNTERS
|
||
|
#define MPIO_TIMERS_COUNTERSGuid \
|
||
|
{ 0xce49b95b,0x690f,0x4cd0, { 0x8a,0x95,0xec,0xe3,0xfa,0xd8,0xef,0xc2 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_TIMERS_COUNTERS_GUID, \
|
||
|
0xce49b95b,0x690f,0x4cd0,0x8a,0x95,0xec,0xe3,0xfa,0xd8,0xef,0xc2);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_TIMERS_COUNTERS
|
||
|
{
|
||
|
//
|
||
|
ULONG PathVerifyEnabled;
|
||
|
#define MPIO_TIMERS_COUNTERS_PathVerifyEnabled_SIZE sizeof(ULONG)
|
||
|
#define MPIO_TIMERS_COUNTERS_PathVerifyEnabled_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG PathVerificationPeriod;
|
||
|
#define MPIO_TIMERS_COUNTERS_PathVerificationPeriod_SIZE sizeof(ULONG)
|
||
|
#define MPIO_TIMERS_COUNTERS_PathVerificationPeriod_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG PDORemovePeriod;
|
||
|
#define MPIO_TIMERS_COUNTERS_PDORemovePeriod_SIZE sizeof(ULONG)
|
||
|
#define MPIO_TIMERS_COUNTERS_PDORemovePeriod_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG RetryCount;
|
||
|
#define MPIO_TIMERS_COUNTERS_RetryCount_SIZE sizeof(ULONG)
|
||
|
#define MPIO_TIMERS_COUNTERS_RetryCount_ID 4
|
||
|
|
||
|
//
|
||
|
ULONG RetryInterval;
|
||
|
#define MPIO_TIMERS_COUNTERS_RetryInterval_SIZE sizeof(ULONG)
|
||
|
#define MPIO_TIMERS_COUNTERS_RetryInterval_ID 5
|
||
|
|
||
|
} MPIO_TIMERS_COUNTERS, *PMPIO_TIMERS_COUNTERS;
|
||
|
|
||
|
#define MPIO_TIMERS_COUNTERS_SIZE (FIELD_OFFSET(MPIO_TIMERS_COUNTERS, RetryInterval) + MPIO_TIMERS_COUNTERS_RetryInterval_SIZE)
|
||
|
|
||
|
// MPIO_WMI_METHODS - MPIO_WMI_METHODS
|
||
|
#define MPIO_WMI_METHODSGuid \
|
||
|
{ 0xe37bc327,0xf7b1,0x4675, { 0x80,0x18,0x85,0x27,0x32,0xe2,0xed,0xe1 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_WMI_METHODS_GUID, \
|
||
|
0xe37bc327,0xf7b1,0x4675,0x80,0x18,0x85,0x27,0x32,0xe2,0xed,0xe1);
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Method id definitions for MPIO_WMI_METHODS
|
||
|
#define MPIOMoveDevice 1
|
||
|
typedef struct _MPIOMoveDevice_IN
|
||
|
{
|
||
|
//
|
||
|
ULONG DiskOrdinal;
|
||
|
#define MPIOMoveDevice_IN_DiskOrdinal_SIZE sizeof(ULONG)
|
||
|
#define MPIOMoveDevice_IN_DiskOrdinal_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Flags;
|
||
|
#define MPIOMoveDevice_IN_Flags_SIZE sizeof(ULONG)
|
||
|
#define MPIOMoveDevice_IN_Flags_ID 2
|
||
|
|
||
|
//
|
||
|
ULONGLONG PathID;
|
||
|
#define MPIOMoveDevice_IN_PathID_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIOMoveDevice_IN_PathID_ID 3
|
||
|
|
||
|
} MPIOMoveDevice_IN, *PMPIOMoveDevice_IN;
|
||
|
|
||
|
#define MPIOMoveDevice_IN_SIZE (FIELD_OFFSET(MPIOMoveDevice_IN, PathID) + MPIOMoveDevice_IN_PathID_SIZE)
|
||
|
|
||
|
#define GetPathConfiguration 2
|
||
|
typedef struct _GetPathConfiguration_IN
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG PathID;
|
||
|
#define GetPathConfiguration_IN_PathID_SIZE sizeof(ULONGLONG)
|
||
|
#define GetPathConfiguration_IN_PathID_ID 1
|
||
|
|
||
|
} GetPathConfiguration_IN, *PGetPathConfiguration_IN;
|
||
|
|
||
|
#define GetPathConfiguration_IN_SIZE (FIELD_OFFSET(GetPathConfiguration_IN, PathID) + GetPathConfiguration_IN_PathID_SIZE)
|
||
|
|
||
|
typedef struct _GetPathConfiguration_OUT
|
||
|
{
|
||
|
//
|
||
|
ULONG EntryCount;
|
||
|
#define GetPathConfiguration_OUT_EntryCount_SIZE sizeof(ULONG)
|
||
|
#define GetPathConfiguration_OUT_EntryCount_ID 2
|
||
|
|
||
|
//
|
||
|
SCSI_ADDR Address[1];
|
||
|
#define GetPathConfiguration_OUT_Address_ID 3
|
||
|
|
||
|
} GetPathConfiguration_OUT, *PGetPathConfiguration_OUT;
|
||
|
|
||
|
#define SetDSMCounters 3
|
||
|
typedef struct _SetDSMCounters_IN
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG DsmContext;
|
||
|
#define SetDSMCounters_IN_DsmContext_SIZE sizeof(ULONGLONG)
|
||
|
#define SetDSMCounters_IN_DsmContext_ID 1
|
||
|
|
||
|
//
|
||
|
DSM_COUNTERS DsmCounters;
|
||
|
#define SetDSMCounters_IN_DsmCounters_SIZE sizeof(DSM_COUNTERS)
|
||
|
#define SetDSMCounters_IN_DsmCounters_ID 2
|
||
|
|
||
|
} SetDSMCounters_IN, *PSetDSMCounters_IN;
|
||
|
|
||
|
#define SetDSMCounters_IN_SIZE (FIELD_OFFSET(SetDSMCounters_IN, DsmCounters) + SetDSMCounters_IN_DsmCounters_SIZE)
|
||
|
|
||
|
#define ClearAllHealthCounters 4
|
||
|
#define ClearPathHealthCounters 5
|
||
|
typedef struct _ClearPathHealthCounters_IN
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG PathID;
|
||
|
#define ClearPathHealthCounters_IN_PathID_SIZE sizeof(ULONGLONG)
|
||
|
#define ClearPathHealthCounters_IN_PathID_ID 1
|
||
|
|
||
|
} ClearPathHealthCounters_IN, *PClearPathHealthCounters_IN;
|
||
|
|
||
|
#define ClearPathHealthCounters_IN_SIZE (FIELD_OFFSET(ClearPathHealthCounters_IN, PathID) + ClearPathHealthCounters_IN_PathID_SIZE)
|
||
|
|
||
|
#define ClearAllPathsHealthCounters 6
|
||
|
#define ClearMpioDiskHealthCounters 7
|
||
|
typedef struct _ClearMpioDiskHealthCounters_IN
|
||
|
{
|
||
|
//
|
||
|
ULONG DiskOrdinal;
|
||
|
#define ClearMpioDiskHealthCounters_IN_DiskOrdinal_SIZE sizeof(ULONG)
|
||
|
#define ClearMpioDiskHealthCounters_IN_DiskOrdinal_ID 1
|
||
|
|
||
|
} ClearMpioDiskHealthCounters_IN, *PClearMpioDiskHealthCounters_IN;
|
||
|
|
||
|
#define ClearMpioDiskHealthCounters_IN_SIZE (FIELD_OFFSET(ClearMpioDiskHealthCounters_IN, DiskOrdinal) + ClearMpioDiskHealthCounters_IN_DiskOrdinal_SIZE)
|
||
|
|
||
|
#define ClearAllMpioDisksHealthCounters 8
|
||
|
|
||
|
// MPIO_EventEntry - MPIO_EventEntry
|
||
|
#define MPIO_EventEntryGuid \
|
||
|
{ 0x2abb031a,0x71aa,0x46d4, { 0xa5,0x3f,0xea,0xe3,0x40,0x51,0xe3,0x57 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_EventEntry_GUID, \
|
||
|
0x2abb031a,0x71aa,0x46d4,0xa5,0x3f,0xea,0xe3,0x40,0x51,0xe3,0x57);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_EventEntry
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG TimeStamp;
|
||
|
#define MPIO_EventEntry_TimeStamp_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_EventEntry_TimeStamp_ID 1
|
||
|
|
||
|
|
||
|
#define MPIO_FATAL_ERROR 1
|
||
|
#define MPIO_ERROR 2
|
||
|
#define MPIO_WARNING 3
|
||
|
#define MPIO_INFORMATION 4
|
||
|
|
||
|
//
|
||
|
ULONG Severity;
|
||
|
#define MPIO_EventEntry_Severity_SIZE sizeof(ULONG)
|
||
|
#define MPIO_EventEntry_Severity_ID 2
|
||
|
|
||
|
//
|
||
|
WCHAR Component[63 + 1];
|
||
|
#define MPIO_EventEntry_Component_ID 3
|
||
|
|
||
|
//
|
||
|
WCHAR EventDescription[63 + 1];
|
||
|
#define MPIO_EventEntry_EventDescription_ID 4
|
||
|
|
||
|
} MPIO_EventEntry, *PMPIO_EventEntry;
|
||
|
|
||
|
#endif
|
||
|
|