mirror of http://192.168.1.51:8099/lmh188/twain3
675 lines
21 KiB
C
675 lines
21 KiB
C
|
#ifndef _mpiodisk_h_
|
||
|
#define _mpiodisk_h_
|
||
|
|
||
|
// PDOSCSI_ADDR - PDOSCSI_ADDR
|
||
|
#define PDOSCSI_ADDRGuid \
|
||
|
{ 0xc74aece4,0x468b,0x4113, { 0xb0,0x06,0x0c,0xec,0xdc,0x96,0x8a,0xc4 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(PDOSCSI_ADDR_GUID, \
|
||
|
0xc74aece4,0x468b,0x4113,0xb0,0x06,0x0c,0xec,0xdc,0x96,0x8a,0xc4);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _PDOSCSI_ADDR
|
||
|
{
|
||
|
//
|
||
|
UCHAR PortNumber;
|
||
|
#define PDOSCSI_ADDR_PortNumber_SIZE sizeof(UCHAR)
|
||
|
#define PDOSCSI_ADDR_PortNumber_ID 1
|
||
|
|
||
|
//
|
||
|
UCHAR ScsiPathId;
|
||
|
#define PDOSCSI_ADDR_ScsiPathId_SIZE sizeof(UCHAR)
|
||
|
#define PDOSCSI_ADDR_ScsiPathId_ID 2
|
||
|
|
||
|
//
|
||
|
UCHAR TargetId;
|
||
|
#define PDOSCSI_ADDR_TargetId_SIZE sizeof(UCHAR)
|
||
|
#define PDOSCSI_ADDR_TargetId_ID 3
|
||
|
|
||
|
//
|
||
|
UCHAR Lun;
|
||
|
#define PDOSCSI_ADDR_Lun_SIZE sizeof(UCHAR)
|
||
|
#define PDOSCSI_ADDR_Lun_ID 4
|
||
|
|
||
|
} PDOSCSI_ADDR, *PPDOSCSI_ADDR;
|
||
|
|
||
|
#define PDOSCSI_ADDR_SIZE (FIELD_OFFSET(PDOSCSI_ADDR, Lun) + PDOSCSI_ADDR_Lun_SIZE)
|
||
|
|
||
|
// PDO_INFORMATION - PDO_INFORMATION
|
||
|
#define PDO_INFORMATIONGuid \
|
||
|
{ 0xe69e581d,0x6580,0x4bc2, { 0xba,0xd1,0x7e,0xee,0x85,0x98,0x90,0x86 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(PDO_INFORMATION_GUID, \
|
||
|
0xe69e581d,0x6580,0x4bc2,0xba,0xd1,0x7e,0xee,0x85,0x98,0x90,0x86);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _PDO_INFORMATION
|
||
|
{
|
||
|
//
|
||
|
PDOSCSI_ADDR ScsiAddress;
|
||
|
#define PDO_INFORMATION_ScsiAddress_SIZE sizeof(PDOSCSI_ADDR)
|
||
|
#define PDO_INFORMATION_ScsiAddress_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG DeviceState;
|
||
|
#define PDO_INFORMATION_DeviceState_SIZE sizeof(ULONG)
|
||
|
#define PDO_INFORMATION_DeviceState_ID 2
|
||
|
|
||
|
//
|
||
|
ULONGLONG PathIdentifier;
|
||
|
#define PDO_INFORMATION_PathIdentifier_SIZE sizeof(ULONGLONG)
|
||
|
#define PDO_INFORMATION_PathIdentifier_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG IdentifierType;
|
||
|
#define PDO_INFORMATION_IdentifierType_SIZE sizeof(ULONG)
|
||
|
#define PDO_INFORMATION_IdentifierType_ID 4
|
||
|
|
||
|
//
|
||
|
ULONG IdentifierLength;
|
||
|
#define PDO_INFORMATION_IdentifierLength_SIZE sizeof(ULONG)
|
||
|
#define PDO_INFORMATION_IdentifierLength_ID 5
|
||
|
|
||
|
//
|
||
|
UCHAR Identifier[32];
|
||
|
#define PDO_INFORMATION_Identifier_SIZE sizeof(UCHAR[32])
|
||
|
#define PDO_INFORMATION_Identifier_ID 6
|
||
|
|
||
|
//
|
||
|
UCHAR Pad[4];
|
||
|
#define PDO_INFORMATION_Pad_SIZE sizeof(UCHAR[4])
|
||
|
#define PDO_INFORMATION_Pad_ID 7
|
||
|
|
||
|
} PDO_INFORMATION, *PPDO_INFORMATION;
|
||
|
|
||
|
#define PDO_INFORMATION_SIZE (FIELD_OFFSET(PDO_INFORMATION, Pad) + PDO_INFORMATION_Pad_SIZE)
|
||
|
|
||
|
// MPIO_GET_DESCRIPTOR - MPIO_GET_DESCRIPTOR
|
||
|
#define MPIO_GET_DESCRIPTORGuid \
|
||
|
{ 0x85134d46,0xd17c,0x4992, { 0x83,0xf9,0x07,0x0d,0xd4,0xc4,0x8e,0x0b } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_GET_DESCRIPTOR_GUID, \
|
||
|
0x85134d46,0xd17c,0x4992,0x83,0xf9,0x07,0x0d,0xd4,0xc4,0x8e,0x0b);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_GET_DESCRIPTOR
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberPdos;
|
||
|
#define MPIO_GET_DESCRIPTOR_NumberPdos_SIZE sizeof(ULONG)
|
||
|
#define MPIO_GET_DESCRIPTOR_NumberPdos_ID 1
|
||
|
|
||
|
//
|
||
|
WCHAR DeviceName[63 + 1];
|
||
|
#define MPIO_GET_DESCRIPTOR_DeviceName_ID 2
|
||
|
|
||
|
//
|
||
|
PDO_INFORMATION PdoInformation[1];
|
||
|
#define MPIO_GET_DESCRIPTOR_PdoInformation_ID 3
|
||
|
|
||
|
} MPIO_GET_DESCRIPTOR, *PMPIO_GET_DESCRIPTOR;
|
||
|
|
||
|
// MPIO_DEVINSTANCE_HEALTH_CLASS - MPIO_DEVINSTANCE_HEALTH_CLASS
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASSGuid \
|
||
|
{ 0xf5e3daf3,0x4fe2,0x4faa, { 0xb0,0x00,0x48,0x85,0x10,0xa6,0x91,0xe4 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DEVINSTANCE_HEALTH_CLASS_GUID, \
|
||
|
0xf5e3daf3,0x4fe2,0x4faa,0xb0,0x00,0x48,0x85,0x10,0xa6,0x91,0xe4);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DEVINSTANCE_HEALTH_CLASS
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG PathId;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_PathId_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_PathId_ID 1
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberReads;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberReads_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberReads_ID 2
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberWrites;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberWrites_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberWrites_ID 3
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberBytesRead;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesRead_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesRead_ID 4
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberBytesWritten;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesWritten_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesWritten_ID 5
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberRetries;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberRetries_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberRetries_ID 6
|
||
|
|
||
|
//
|
||
|
ULONGLONG NumberIoErrors;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberIoErrors_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberIoErrors_ID 7
|
||
|
|
||
|
//
|
||
|
ULONGLONG CreateTime;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_CreateTime_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_CreateTime_ID 8
|
||
|
|
||
|
//
|
||
|
ULONGLONG FailTime;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_FailTime_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_FailTime_ID 9
|
||
|
|
||
|
//
|
||
|
BOOLEAN DeviceOffline;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_DeviceOffline_SIZE sizeof(BOOLEAN)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_DeviceOffline_ID 10
|
||
|
|
||
|
//
|
||
|
UCHAR NumberReadsWrap;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberReadsWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberReadsWrap_ID 11
|
||
|
|
||
|
//
|
||
|
UCHAR NumberWritesWrap;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberWritesWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberWritesWrap_ID 12
|
||
|
|
||
|
//
|
||
|
UCHAR NumberBytesReadWrap;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesReadWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesReadWrap_ID 13
|
||
|
|
||
|
//
|
||
|
UCHAR NumberBytesWrittenWrap;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesWrittenWrap_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_NumberBytesWrittenWrap_ID 14
|
||
|
|
||
|
//
|
||
|
UCHAR Pad[3];
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_Pad_SIZE sizeof(UCHAR[3])
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_Pad_ID 15
|
||
|
|
||
|
} MPIO_DEVINSTANCE_HEALTH_CLASS, *PMPIO_DEVINSTANCE_HEALTH_CLASS;
|
||
|
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_CLASS_SIZE (FIELD_OFFSET(MPIO_DEVINSTANCE_HEALTH_CLASS, Pad) + MPIO_DEVINSTANCE_HEALTH_CLASS_Pad_SIZE)
|
||
|
|
||
|
// MPIO_DEVINSTANCE_HEALTH_INFO - MPIO_DEVINSTANCE_HEALTH_INFO
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_INFOGuid \
|
||
|
{ 0x9e4f39ac,0xcbaa,0x4298, { 0xb6,0x00,0x48,0x8a,0xc5,0x65,0x2e,0xa9 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DEVINSTANCE_HEALTH_INFO_GUID, \
|
||
|
0x9e4f39ac,0xcbaa,0x4298,0xb6,0x00,0x48,0x8a,0xc5,0x65,0x2e,0xa9);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DEVINSTANCE_HEALTH_INFO
|
||
|
{
|
||
|
//
|
||
|
ULONG NumberDevInstancePackets;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_INFO_NumberDevInstancePackets_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_INFO_NumberDevInstancePackets_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_INFO_Reserved_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_INFO_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
MPIO_DEVINSTANCE_HEALTH_CLASS DevInstanceHealthPackets[1];
|
||
|
#define MPIO_DEVINSTANCE_HEALTH_INFO_DevInstanceHealthPackets_ID 3
|
||
|
|
||
|
} MPIO_DEVINSTANCE_HEALTH_INFO, *PMPIO_DEVINSTANCE_HEALTH_INFO;
|
||
|
|
||
|
// MPIO_DISK_WMI_METHODS - MPIO_DISK_WMI_METHODS
|
||
|
#define MPIO_DISK_WMI_METHODSGuid \
|
||
|
{ 0xe6f52471,0xf302,0x49ce, { 0x99,0x0b,0xfa,0x7f,0xc9,0xeb,0xe6,0x66 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DISK_WMI_METHODS_GUID, \
|
||
|
0xe6f52471,0xf302,0x49ce,0x99,0x0b,0xfa,0x7f,0xc9,0xeb,0xe6,0x66);
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Method id definitions for MPIO_DISK_WMI_METHODS
|
||
|
#define ClearAllDevInstancesHealthCounters 1
|
||
|
#define ClearDevInstanceHealthCounters 2
|
||
|
typedef struct _ClearDevInstanceHealthCounters_IN
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG PathID;
|
||
|
#define ClearDevInstanceHealthCounters_IN_PathID_SIZE sizeof(ULONGLONG)
|
||
|
#define ClearDevInstanceHealthCounters_IN_PathID_ID 1
|
||
|
|
||
|
} ClearDevInstanceHealthCounters_IN, *PClearDevInstanceHealthCounters_IN;
|
||
|
|
||
|
#define ClearDevInstanceHealthCounters_IN_SIZE (FIELD_OFFSET(ClearDevInstanceHealthCounters_IN, PathID) + ClearDevInstanceHealthCounters_IN_PathID_SIZE)
|
||
|
|
||
|
|
||
|
// MPIO_DSM_Path_V2 - MPIO_DSM_Path_V2
|
||
|
#define MPIO_DSM_Path_V2Guid \
|
||
|
{ 0xac4e13b0,0x7cb6,0x4599, { 0xb3,0x97,0xfb,0x36,0xfa,0xec,0x5c,0x96 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DSM_Path_V2_GUID, \
|
||
|
0xac4e13b0,0x7cb6,0x4599,0xb3,0x97,0xfb,0x36,0xfa,0xec,0x5c,0x96);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DSM_Path_V2
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG DsmPathId;
|
||
|
#define MPIO_DSM_Path_V2_DsmPathId_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DSM_Path_V2_DsmPathId_ID 1
|
||
|
|
||
|
//
|
||
|
ULONGLONG Reserved;
|
||
|
#define MPIO_DSM_Path_V2_Reserved_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DSM_Path_V2_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG PathWeight;
|
||
|
#define MPIO_DSM_Path_V2_PathWeight_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_PathWeight_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG PrimaryPath;
|
||
|
#define MPIO_DSM_Path_V2_PrimaryPath_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_PrimaryPath_ID 4
|
||
|
|
||
|
//
|
||
|
ULONG OptimizedPath;
|
||
|
#define MPIO_DSM_Path_V2_OptimizedPath_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_OptimizedPath_ID 5
|
||
|
|
||
|
//
|
||
|
ULONG PreferredPath;
|
||
|
#define MPIO_DSM_Path_V2_PreferredPath_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_PreferredPath_ID 6
|
||
|
|
||
|
//
|
||
|
ULONG FailedPath;
|
||
|
#define MPIO_DSM_Path_V2_FailedPath_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_FailedPath_ID 7
|
||
|
|
||
|
|
||
|
#define STATE_ACTIVE_OPTIMIZED 0
|
||
|
#define STATE_ACTIVE_UNOPTIMIZED 1
|
||
|
#define STATE_STANDBY 2
|
||
|
#define STATE_UNAVAILABLE 3
|
||
|
#define STATE_NOT_USED 16
|
||
|
|
||
|
//
|
||
|
ULONG TargetPortGroup_State;
|
||
|
#define MPIO_DSM_Path_V2_TargetPortGroup_State_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_TargetPortGroup_State_ID 8
|
||
|
|
||
|
|
||
|
#define ALUA_NOT_SUPPORTED 0
|
||
|
#define ALUA_IMPLICIT_ONLY 1
|
||
|
#define ALUA_EXPLICIT_ONLY 2
|
||
|
#define ALUA_IMPLICIT_AND_EXPLICIT 3
|
||
|
|
||
|
//
|
||
|
ULONG ALUASupport;
|
||
|
#define MPIO_DSM_Path_V2_ALUASupport_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_ALUASupport_ID 9
|
||
|
|
||
|
//
|
||
|
UCHAR SymmetricLUA;
|
||
|
#define MPIO_DSM_Path_V2_SymmetricLUA_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DSM_Path_V2_SymmetricLUA_ID 10
|
||
|
|
||
|
//
|
||
|
UCHAR TargetPortGroup_Preferred;
|
||
|
#define MPIO_DSM_Path_V2_TargetPortGroup_Preferred_SIZE sizeof(UCHAR)
|
||
|
#define MPIO_DSM_Path_V2_TargetPortGroup_Preferred_ID 11
|
||
|
|
||
|
//
|
||
|
USHORT TargetPortGroup_Identifier;
|
||
|
#define MPIO_DSM_Path_V2_TargetPortGroup_Identifier_SIZE sizeof(USHORT)
|
||
|
#define MPIO_DSM_Path_V2_TargetPortGroup_Identifier_ID 12
|
||
|
|
||
|
//
|
||
|
ULONG TargetPort_Identifier;
|
||
|
#define MPIO_DSM_Path_V2_TargetPort_Identifier_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_TargetPort_Identifier_ID 13
|
||
|
|
||
|
//
|
||
|
ULONG Reserved32;
|
||
|
#define MPIO_DSM_Path_V2_Reserved32_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_V2_Reserved32_ID 14
|
||
|
|
||
|
//
|
||
|
ULONGLONG Reserved64;
|
||
|
#define MPIO_DSM_Path_V2_Reserved64_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DSM_Path_V2_Reserved64_ID 15
|
||
|
|
||
|
} MPIO_DSM_Path_V2, *PMPIO_DSM_Path_V2;
|
||
|
|
||
|
#define MPIO_DSM_Path_V2_SIZE (FIELD_OFFSET(MPIO_DSM_Path_V2, Reserved64) + MPIO_DSM_Path_V2_Reserved64_SIZE)
|
||
|
|
||
|
// DSM_Load_Balance_Policy_V2 - DSM_Load_Balance_Policy_V2
|
||
|
#define DSM_Load_Balance_Policy_V2Guid \
|
||
|
{ 0x6f4474ce,0xd20e,0x426c, { 0x93,0x71,0x9b,0x87,0xc2,0xe2,0xcd,0x5a } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_Load_Balance_Policy_V2_GUID, \
|
||
|
0x6f4474ce,0xd20e,0x426c,0x93,0x71,0x9b,0x87,0xc2,0xe2,0xcd,0x5a);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_Load_Balance_Policy_V2
|
||
|
{
|
||
|
//
|
||
|
ULONG Version;
|
||
|
#define DSM_Load_Balance_Policy_V2_Version_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_V2_Version_ID 1
|
||
|
|
||
|
|
||
|
#define DSM_LB_FAILOVER 1
|
||
|
#define DSM_LB_ROUND_ROBIN 2
|
||
|
#define DSM_LB_ROUND_ROBIN_WITH_SUBSET 3
|
||
|
#define DSM_LB_DYN_LEAST_QUEUE_DEPTH 4
|
||
|
#define DSM_LB_WEIGHTED_PATHS 5
|
||
|
#define DSM_LB_LEAST_BLOCKS 6
|
||
|
#define DSM_LB_VENDOR_SPECIFIC 7
|
||
|
|
||
|
//
|
||
|
ULONG LoadBalancePolicy;
|
||
|
#define DSM_Load_Balance_Policy_V2_LoadBalancePolicy_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_V2_LoadBalancePolicy_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG DSMPathCount;
|
||
|
#define DSM_Load_Balance_Policy_V2_DSMPathCount_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_V2_DSMPathCount_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define DSM_Load_Balance_Policy_V2_Reserved_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_V2_Reserved_ID 4
|
||
|
|
||
|
//
|
||
|
MPIO_DSM_Path_V2 DSM_Paths[1];
|
||
|
#define DSM_Load_Balance_Policy_V2_DSM_Paths_ID 5
|
||
|
|
||
|
} DSM_Load_Balance_Policy_V2, *PDSM_Load_Balance_Policy_V2;
|
||
|
|
||
|
// DSM_QueryLBPolicy_V2 - DSM_QueryLBPolicy_V2
|
||
|
#define DSM_QueryLBPolicy_V2Guid \
|
||
|
{ 0xd14fed0e,0xbdfb,0x4615, { 0x85,0x78,0x35,0x0c,0x4c,0x2b,0x06,0xd7 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_QueryLBPolicy_V2_GUID, \
|
||
|
0xd14fed0e,0xbdfb,0x4615,0x85,0x78,0x35,0x0c,0x4c,0x2b,0x06,0xd7);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_QueryLBPolicy_V2
|
||
|
{
|
||
|
//
|
||
|
DSM_Load_Balance_Policy_V2 LoadBalancePolicy;
|
||
|
#define DSM_QueryLBPolicy_V2_LoadBalancePolicy_SIZE sizeof(DSM_Load_Balance_Policy_V2)
|
||
|
#define DSM_QueryLBPolicy_V2_LoadBalancePolicy_ID 1
|
||
|
|
||
|
} DSM_QueryLBPolicy_V2, *PDSM_QueryLBPolicy_V2;
|
||
|
|
||
|
#define DSM_QueryLBPolicy_V2_SIZE (FIELD_OFFSET(DSM_QueryLBPolicy_V2, LoadBalancePolicy) + DSM_QueryLBPolicy_V2_LoadBalancePolicy_SIZE)
|
||
|
|
||
|
// DSM_QuerySupportedLBPolicies_V2 - DSM_QuerySupportedLBPolicies_V2
|
||
|
#define DSM_QuerySupportedLBPolicies_V2Guid \
|
||
|
{ 0xfc777b74,0x7bcc,0x47ae, { 0xaa,0x63,0x59,0x65,0x6b,0xa5,0x93,0xfe } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_QuerySupportedLBPolicies_V2_GUID, \
|
||
|
0xfc777b74,0x7bcc,0x47ae,0xaa,0x63,0x59,0x65,0x6b,0xa5,0x93,0xfe);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_QuerySupportedLBPolicies_V2
|
||
|
{
|
||
|
//
|
||
|
ULONG SupportedLBPoliciesCount;
|
||
|
#define DSM_QuerySupportedLBPolicies_V2_SupportedLBPoliciesCount_SIZE sizeof(ULONG)
|
||
|
#define DSM_QuerySupportedLBPolicies_V2_SupportedLBPoliciesCount_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define DSM_QuerySupportedLBPolicies_V2_Reserved_SIZE sizeof(ULONG)
|
||
|
#define DSM_QuerySupportedLBPolicies_V2_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
DSM_Load_Balance_Policy_V2 Supported_LB_Policies[1];
|
||
|
#define DSM_QuerySupportedLBPolicies_V2_Supported_LB_Policies_ID 3
|
||
|
|
||
|
} DSM_QuerySupportedLBPolicies_V2, *PDSM_QuerySupportedLBPolicies_V2;
|
||
|
|
||
|
// MPIO_DSM_Path - MPIO_DSM_Path
|
||
|
#define MPIO_DSM_PathGuid \
|
||
|
{ 0x80ebd5b4,0x3baf,0x41f1, { 0x9c,0x41,0xbd,0x36,0xc5,0x28,0x2b,0x67 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(MPIO_DSM_Path_GUID, \
|
||
|
0x80ebd5b4,0x3baf,0x41f1,0x9c,0x41,0xbd,0x36,0xc5,0x28,0x2b,0x67);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _MPIO_DSM_Path
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG DsmPathId;
|
||
|
#define MPIO_DSM_Path_DsmPathId_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DSM_Path_DsmPathId_ID 1
|
||
|
|
||
|
//
|
||
|
ULONGLONG Reserved;
|
||
|
#define MPIO_DSM_Path_Reserved_SIZE sizeof(ULONGLONG)
|
||
|
#define MPIO_DSM_Path_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG PathWeight;
|
||
|
#define MPIO_DSM_Path_PathWeight_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_PathWeight_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG PrimaryPath;
|
||
|
#define MPIO_DSM_Path_PrimaryPath_SIZE sizeof(ULONG)
|
||
|
#define MPIO_DSM_Path_PrimaryPath_ID 4
|
||
|
|
||
|
} MPIO_DSM_Path, *PMPIO_DSM_Path;
|
||
|
|
||
|
#define MPIO_DSM_Path_SIZE (FIELD_OFFSET(MPIO_DSM_Path, PrimaryPath) + MPIO_DSM_Path_PrimaryPath_SIZE)
|
||
|
|
||
|
// DSM_Load_Balance_Policy - DSM_Load_Balance_Policy
|
||
|
#define DSM_Load_Balance_PolicyGuid \
|
||
|
{ 0x3078b89b,0xa34f,0x4ff6, { 0x81,0x0a,0xc5,0x6a,0xd3,0xba,0x94,0x7d } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_Load_Balance_Policy_GUID, \
|
||
|
0x3078b89b,0xa34f,0x4ff6,0x81,0x0a,0xc5,0x6a,0xd3,0xba,0x94,0x7d);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_Load_Balance_Policy
|
||
|
{
|
||
|
//
|
||
|
ULONG Version;
|
||
|
#define DSM_Load_Balance_Policy_Version_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_Version_ID 1
|
||
|
|
||
|
|
||
|
#define DSM_LB_FAILOVER 1
|
||
|
#define DSM_LB_ROUND_ROBIN 2
|
||
|
#define DSM_LB_ROUND_ROBIN_WITH_SUBSET 3
|
||
|
#define DSM_LB_DYN_LEAST_QUEUE_DEPTH 4
|
||
|
#define DSM_LB_WEIGHTED_PATHS 5
|
||
|
#define DSM_LB_LEAST_BLOCKS 6
|
||
|
#define DSM_LB_VENDOR_SPECIFIC 7
|
||
|
|
||
|
//
|
||
|
ULONG LoadBalancePolicy;
|
||
|
#define DSM_Load_Balance_Policy_LoadBalancePolicy_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_LoadBalancePolicy_ID 2
|
||
|
|
||
|
//
|
||
|
ULONG DSMPathCount;
|
||
|
#define DSM_Load_Balance_Policy_DSMPathCount_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_DSMPathCount_ID 3
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define DSM_Load_Balance_Policy_Reserved_SIZE sizeof(ULONG)
|
||
|
#define DSM_Load_Balance_Policy_Reserved_ID 4
|
||
|
|
||
|
//
|
||
|
MPIO_DSM_Path DSM_Paths[1];
|
||
|
#define DSM_Load_Balance_Policy_DSM_Paths_ID 5
|
||
|
|
||
|
} DSM_Load_Balance_Policy, *PDSM_Load_Balance_Policy;
|
||
|
|
||
|
// DSM_QueryLBPolicy - DSM_QueryLBPolicy
|
||
|
#define DSM_QueryLBPolicyGuid \
|
||
|
{ 0x20a4663b,0xbf54,0x4738, { 0xb4,0x03,0x0c,0xfc,0x71,0xec,0xfc,0x90 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_QueryLBPolicy_GUID, \
|
||
|
0x20a4663b,0xbf54,0x4738,0xb4,0x03,0x0c,0xfc,0x71,0xec,0xfc,0x90);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_QueryLBPolicy
|
||
|
{
|
||
|
//
|
||
|
DSM_Load_Balance_Policy LoadBalancePolicy;
|
||
|
#define DSM_QueryLBPolicy_LoadBalancePolicy_SIZE sizeof(DSM_Load_Balance_Policy)
|
||
|
#define DSM_QueryLBPolicy_LoadBalancePolicy_ID 1
|
||
|
|
||
|
} DSM_QueryLBPolicy, *PDSM_QueryLBPolicy;
|
||
|
|
||
|
#define DSM_QueryLBPolicy_SIZE (FIELD_OFFSET(DSM_QueryLBPolicy, LoadBalancePolicy) + DSM_QueryLBPolicy_LoadBalancePolicy_SIZE)
|
||
|
|
||
|
// DSM_QuerySupportedLBPolicies - DSM_QuerySupportedLBPolicies
|
||
|
#define DSM_QuerySupportedLBPoliciesGuid \
|
||
|
{ 0xffcf3f4e,0xbab6,0x455c, { 0xba,0x99,0xd6,0x0c,0xfb,0xc5,0x88,0x7d } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_QuerySupportedLBPolicies_GUID, \
|
||
|
0xffcf3f4e,0xbab6,0x455c,0xba,0x99,0xd6,0x0c,0xfb,0xc5,0x88,0x7d);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_QuerySupportedLBPolicies
|
||
|
{
|
||
|
//
|
||
|
ULONG SupportedLBPoliciesCount;
|
||
|
#define DSM_QuerySupportedLBPolicies_SupportedLBPoliciesCount_SIZE sizeof(ULONG)
|
||
|
#define DSM_QuerySupportedLBPolicies_SupportedLBPoliciesCount_ID 1
|
||
|
|
||
|
//
|
||
|
ULONG Reserved;
|
||
|
#define DSM_QuerySupportedLBPolicies_Reserved_SIZE sizeof(ULONG)
|
||
|
#define DSM_QuerySupportedLBPolicies_Reserved_ID 2
|
||
|
|
||
|
//
|
||
|
DSM_Load_Balance_Policy Supported_LB_Policies[1];
|
||
|
#define DSM_QuerySupportedLBPolicies_Supported_LB_Policies_ID 3
|
||
|
|
||
|
} DSM_QuerySupportedLBPolicies, *PDSM_QuerySupportedLBPolicies;
|
||
|
|
||
|
// DSM_LB_Operations - DSM_LB_Operations
|
||
|
#define DSM_LB_OperationsGuid \
|
||
|
{ 0xc944053c,0xc90f,0x4012, { 0xb7,0x75,0x1f,0x1a,0x26,0x1d,0x4b,0xe4 } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_LB_Operations_GUID, \
|
||
|
0xc944053c,0xc90f,0x4012,0xb7,0x75,0x1f,0x1a,0x26,0x1d,0x4b,0xe4);
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Method id definitions for DSM_LB_Operations
|
||
|
#define DsmSetLoadBalancePolicy 1
|
||
|
typedef struct _DsmSetLoadBalancePolicy_IN
|
||
|
{
|
||
|
//
|
||
|
DSM_Load_Balance_Policy LoadBalancePolicy;
|
||
|
#define DsmSetLoadBalancePolicy_IN_LoadBalancePolicy_SIZE sizeof(DSM_Load_Balance_Policy)
|
||
|
#define DsmSetLoadBalancePolicy_IN_LoadBalancePolicy_ID 1
|
||
|
|
||
|
} DsmSetLoadBalancePolicy_IN, *PDsmSetLoadBalancePolicy_IN;
|
||
|
|
||
|
#define DsmSetLoadBalancePolicy_IN_SIZE (FIELD_OFFSET(DsmSetLoadBalancePolicy_IN, LoadBalancePolicy) + DsmSetLoadBalancePolicy_IN_LoadBalancePolicy_SIZE)
|
||
|
|
||
|
typedef struct _DsmSetLoadBalancePolicy_OUT
|
||
|
{
|
||
|
//
|
||
|
ULONG Status;
|
||
|
#define DsmSetLoadBalancePolicy_OUT_Status_SIZE sizeof(ULONG)
|
||
|
#define DsmSetLoadBalancePolicy_OUT_Status_ID 2
|
||
|
|
||
|
} DsmSetLoadBalancePolicy_OUT, *PDsmSetLoadBalancePolicy_OUT;
|
||
|
|
||
|
#define DsmSetLoadBalancePolicy_OUT_SIZE (FIELD_OFFSET(DsmSetLoadBalancePolicy_OUT, Status) + DsmSetLoadBalancePolicy_OUT_Status_SIZE)
|
||
|
|
||
|
#define DsmSetLoadBalancePolicyALUA 2
|
||
|
typedef struct _DsmSetLoadBalancePolicyALUA_IN
|
||
|
{
|
||
|
//
|
||
|
DSM_Load_Balance_Policy_V2 LoadBalancePolicy;
|
||
|
#define DsmSetLoadBalancePolicyALUA_IN_LoadBalancePolicy_SIZE sizeof(DSM_Load_Balance_Policy_V2)
|
||
|
#define DsmSetLoadBalancePolicyALUA_IN_LoadBalancePolicy_ID 1
|
||
|
|
||
|
} DsmSetLoadBalancePolicyALUA_IN, *PDsmSetLoadBalancePolicyALUA_IN;
|
||
|
|
||
|
#define DsmSetLoadBalancePolicyALUA_IN_SIZE (FIELD_OFFSET(DsmSetLoadBalancePolicyALUA_IN, LoadBalancePolicy) + DsmSetLoadBalancePolicyALUA_IN_LoadBalancePolicy_SIZE)
|
||
|
|
||
|
typedef struct _DsmSetLoadBalancePolicyALUA_OUT
|
||
|
{
|
||
|
//
|
||
|
ULONG Status;
|
||
|
#define DsmSetLoadBalancePolicyALUA_OUT_Status_SIZE sizeof(ULONG)
|
||
|
#define DsmSetLoadBalancePolicyALUA_OUT_Status_ID 2
|
||
|
|
||
|
} DsmSetLoadBalancePolicyALUA_OUT, *PDsmSetLoadBalancePolicyALUA_OUT;
|
||
|
|
||
|
#define DsmSetLoadBalancePolicyALUA_OUT_SIZE (FIELD_OFFSET(DsmSetLoadBalancePolicyALUA_OUT, Status) + DsmSetLoadBalancePolicyALUA_OUT_Status_SIZE)
|
||
|
|
||
|
|
||
|
// DSM_QueryUniqueId - DSM_QueryUniqueId
|
||
|
#define DSM_QueryUniqueIdGuid \
|
||
|
{ 0x7b47cbe2,0x63d0,0x4e6b, { 0xb9,0x87,0x4b,0xfc,0xbd,0x6c,0x36,0x8e } }
|
||
|
|
||
|
#if ! (defined(MIDL_PASS))
|
||
|
DEFINE_GUID(DSM_QueryUniqueId_GUID, \
|
||
|
0x7b47cbe2,0x63d0,0x4e6b,0xb9,0x87,0x4b,0xfc,0xbd,0x6c,0x36,0x8e);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef struct _DSM_QueryUniqueId
|
||
|
{
|
||
|
//
|
||
|
ULONGLONG DsmUniqueId;
|
||
|
#define DSM_QueryUniqueId_DsmUniqueId_SIZE sizeof(ULONGLONG)
|
||
|
#define DSM_QueryUniqueId_DsmUniqueId_ID 1
|
||
|
|
||
|
} DSM_QueryUniqueId, *PDSM_QueryUniqueId;
|
||
|
|
||
|
#define DSM_QueryUniqueId_SIZE (FIELD_OFFSET(DSM_QueryUniqueId, DsmUniqueId) + DSM_QueryUniqueId_DsmUniqueId_SIZE)
|
||
|
|
||
|
#endif
|
||
|
|