windows-nt/Source/XPSP1/NT/drivers/storage/mpath/control/pdowmi.h

107 lines
2.8 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
#ifndef _pdowmi_h_
#define _pdowmi_h_
// CName - CName
#define CNameGuid \
{ 0x0cf26b63,0x4b08,0x426d, { 0xb1,0x71,0xcd,0xbb,0x1c,0xcd,0xd1,0x1a } }
DEFINE_GUID(CName_GUID, \
0x0cf26b63,0x4b08,0x426d,0xb1,0x71,0xcd,0xbb,0x1c,0xcd,0xd1,0x1a);
typedef struct _CName
{
//
CHAR VariableData[1];
#define CName_CName_ID 1
} CName, *PCName;
// SCSI_ADDR - SCSI_ADDR
#define SCSI_ADDRGuid \
{ 0xc74aece4,0x468b,0x4113, { 0xb0,0x06,0x0c,0xec,0xdc,0x96,0x8a,0xc4 } }
DEFINE_GUID(SCSI_ADDR_GUID, \
0xc74aece4,0x468b,0x4113,0xb0,0x06,0x0c,0xec,0xdc,0x96,0x8a,0xc4);
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;
// PDO_INFORMATION - PDO_INFORMATION
#define PDO_INFORMATIONGuid \
{ 0xe69e581d,0x6580,0x4bc2, { 0xba,0xd1,0x7e,0xee,0x85,0x98,0x90,0x86 } }
DEFINE_GUID(PDO_INFORMATION_GUID, \
0xe69e581d,0x6580,0x4bc2,0xba,0xd1,0x7e,0xee,0x85,0x98,0x90,0x86);
typedef struct _PDO_INFORMATION
{
//
SCSI_ADDR ScsiAddress;
#define PDO_INFORMATION_ScsiAddress_SIZE sizeof(SCSI_ADDR)
#define PDO_INFORMATION_ScsiAddress_ID 1
//
ULONGLONG PathIdentifier;
#define PDO_INFORMATION_PathIdentifier_SIZE sizeof(ULONGLONG)
#define PDO_INFORMATION_PathIdentifier_ID 2
//
ULONGLONG ControllerIdentifier;
#define PDO_INFORMATION_ControllerIdentifier_SIZE sizeof(ULONGLONG)
#define PDO_INFORMATION_ControllerIdentifier_ID 3
} PDO_INFORMATION, *PPDO_INFORMATION;
// MPIO_GET_DESCRIPTOR - MPIO_GET_DESCRIPTOR
// Retrieve Object Information about a Multi-Path Disk.
#define MPIO_GET_DESCRIPTORGuid \
{ 0x85134d46,0xd17c,0x4992, { 0x83,0xf9,0x07,0x0d,0xd4,0xc4,0x8e,0x0b } }
DEFINE_GUID(MPIO_GET_DESCRIPTOR_GUID, \
0x85134d46,0xd17c,0x4992,0x83,0xf9,0x07,0x0d,0xd4,0xc4,0x8e,0x0b);
typedef struct _MPIO_GET_DESCRIPTOR
{
// Number of Port Objects backing the device.
ULONG NumberPdos;
#define MPIO_GET_DESCRIPTOR_NumberPdos_SIZE sizeof(ULONG)
#define MPIO_GET_DESCRIPTOR_NumberPdos_ID 1
// Name of Device.
CName DeviceName;
#define MPIO_GET_DESCRIPTOR_DeviceName_SIZE sizeof(CName)
#define MPIO_GET_DESCRIPTOR_DeviceName_ID 2
// Array of Infomation classes describing the real device.
PDO_INFORMATION PdoInformation[1];
#define MPIO_GET_DESCRIPTOR_PdoInformation_ID 3
} MPIO_GET_DESCRIPTOR, *PMPIO_GET_DESCRIPTOR;
#endif