The DISK_PROPS_EX structure holds information about a single disk. This structure SHOULD<6> be supported and is required for the IClusterStorage3 interface.
typedef struct _DISK_PROPS_EX {
ULONG DiskNumber;
CPREP_DISKID DiskId;
ULONG DiskBusType;
DiskStackType StackType;
CPREP_SCSI_ADDRESS ScsiAddress;
BOOL DiskIsClusterable;
wchar_t AdapterDesc[260];
[string] LPWSTR pwszFriendlyName;
unsigned long NumPaths;
unsigned long Flags;
unsigned long ExtendedFlags;
[string] LPWSTR pwszPoolName;
[string] LPWSTR pwszPage83Id;
[string] LPWSTR pwszSerialNumber;
GUID guidPoolId;
} DISK_PROPS_EX,
*PDISK_PROPS_EX;
DiskNumber: The zero-based device number assigned to the disk by the operating system.
DiskId: A valid CPREP_DISKID structure with the correct identifier for the disk.
DiskBusType: The type of bus to which the disk is attached. It contains one of the following values.
|
Value |
Meaning |
|---|---|
|
BusTypeUnknown 0x00000000 |
The bus type is not one of those that follow. |
|
BusTypeScsi 0x00000001 |
The bus type is SCSI. |
|
BusTypeAtapi 0x00000002 |
The bus type is AT attachment packet interface (ATAPI). |
|
BusTypeAta 0x00000003 |
The bus type is advanced technology attachment (ATA). |
|
BusType1394 0x00000004 |
The bus type is IEEE 1394. |
|
BusTypeSsa 0x00000005 |
The bus type is serial storage architecture (SSA). |
|
BusTypeFibre 0x00000006 |
The bus type is Fibre Channel. |
|
BusTypeUsb 0x00000007 |
The bus type is universal serial bus (USB). |
|
BusTypeRAID 0x00000008 |
The bus type is redundant array of independent disks (RAID). |
|
BusTypeiScsi 0x00000009 |
The bus type is iSCSI. |
|
BusTypeSas 0x0000000A |
The bus type is Serial Attached SCSI (SAS). |
|
BusTypeSata 0x0000000B |
The bus type is Serial ATA (SATA). |
|
BusTypeSd 0x0000000C |
The bus type is Sd. |
|
BusTypeMmc 0x0000000D |
The bus type is Mmc. |
|
BusTypeVirtual 0x0000000E |
The bus type is Virtual. |
|
BusTypeFileBackedVirtual 0x0000000F |
The bus type is File Backed Virtual. |
|
BusTypeSpaces 0x00000010 |
The bus type is Spaces. |
StackType: The driver subtype of the device driver. It MUST be one of the valid values for DiskStackType.
ScsiAddress: The SCSI address of the disk. It MUST be a valid CPREP_SCSI_ADDRESS.
DiskIsClusterable: A Boolean flag that indicates whether the disk can be clustered. A value of TRUE or 1 indicates that the disk can be clustered. A value of FALSE or 0 indicates that the disk cannot be clustered. The value of the DiskIsClusterable member can be determined in an implementation-specific way.
AdapterDesc: A user-friendly description of the adapter to which the disk is connected.
pwszFriendlyName: A null-terminated string containing a user-friendly description of the disk. Memory for this string is allocated by the server and MUST be freed by the client.
NumPaths: The number of IO paths to the disk. A Multipath I/O (MPIO) disk has a number greater than 1.
Flags: Information about the disk. It contains one or more of the following values bitwise OR'd together.
|
Value |
Meaning |
|---|---|
|
DISK_BOOT 0x00000001 |
The disk is the boot device. |
|
DISK_SYSTEM 0x00000002 |
The disk contains the operating system. |
|
DISK_PAGEFILE 0x00000004 |
The disk contains an operating system pagefile. |
|
DISK_HIBERNATE 0x00000008 |
The disk will be used to store system hibernation data. |
|
DISK_CRASHDUMP 0x00000010 |
The disk will be used to store system crash dump data. |
|
DISK_REMOVABLE 0x00000020 |
The disk is on removable media. |
|
DISK_CLUSTERNOSUPP 0x00000040 |
The disk is not supported by the cluster implementation. The criteria for support are implementation-specific. |
|
DISK_BUSNOSUPP 0x00000100 |
The disk is on a bus not supported by the cluster implementation. The criteria for support are implementation-specific. |
|
DISK_SYSTEMBUS 0x00000200 |
The disk is on the same bus as the disk containing the operating system. |
|
DISK_ALREADY_CLUSTERED 0x00000400 |
The disk is already controlled by the cluster. |
|
DISK_SYTLE_MBR 0x00001000 |
The disk is MBR. |
|
DISK_STYLE_GPT 0x00002000 |
The disk is GPT. |
|
DISK_STYLE_RAW 0x00004000 |
The disk is neither MBR nor GPT. |
|
DISK_PART_BASIC 0x00008000 |
The disk is configured with basic volumes. |
|
DISK_PART_DYNAMIC 0x00010000 |
The disk is configured with dynamic volumes. |
|
DISK_CLUSTERED_ONLINE 0x00020000 |
The disk is controlled by the cluster and is online. |
|
DISK_UNREADABLE 0x00040000 |
The disk cannot be read. |
|
DISK_MPIO 0x00080000 |
The disk is controlled by MPIO. |
|
DISK_CLUSTERED_OTHER 0x00100000 |
The disk is controlled by cluster software other than the failover cluster implementation. |
|
DISK_MISSING 0x00200000 |
The disk could not be found. |
|
DISK_REDUNDANT 0x00400000 |
The disk is exposed to the operating system more than once through redundant paths. |
|
DISK_SNAPSHOT 0x00800000 |
The disk is a snapshot disk. |
|
DISK_FAILING_IO 0x02000000 |
The disk is unable to gather disk information. |
|
DISK_NO_PAGE83 0x04000000 |
The disk does not have a Device Identification VPD
page (see [SPC-3]
section 7.6.3) with PAGE CODE (see [SPC-3] table 294) set to |
|
DISK_COLLISION 0x08000000 |
The disk's signature collides with the signature of another disk visible to this server, and disk signature collision resolution is disabled. |
|
DISK_OUTOFSPACE 0x10000000 |
The disk is a thin-provisioned LUN that has no free space. |
|
DISK_POOL_DRIVE 0x20000000 |
The disk is a member of a storage pool. |
|
DISK_POOL_DRIVE_NOT_TESTABLE 0x40000000 |
The disk is a member of a storage pool but does not meet implementation-specific criteria for testing. |
|
DISK_POOL_CLUSTERED 0x80000000 |
The disk is a member of a storage pool, and the storage pool to which it belongs is a cluster resource. |
ExtendedFlags: Additional information about the disk. It contains one or more of the following values bitwise OR'd together.
|
Value |
Meaning |
|---|---|
|
DISK_EX_SPLITPOOLCONFIG 0x00000001 |
The storage pool drive is configured for both pool and non-pool data. |
|
DISK_EX_POOL_NOT_CLUSTERABLE 0x00000002 |
The storage pool drive is part of a pool that is not suitable for failover clustering. |
pwszPoolName: A null-terminated string indicating the name of the storage pool that the disk is a member of. If the disk is not a member of a storage pool, this field MUST be initialized to NULL.
Memory is allocated by the server and MUST be freed by the client.
pwszPage83Id: A null-terminated
string containing a VPD 83h identifier (see [SPC-3] section 7.6.3) associated
with the addressed logical
unit number. The VPD 83h ASSOCIATION
field (see [SPC-3] table 297) has the value 00bh,
and IDENTIFIER TYPE (see [SPC-3] table 298) equal to SCSI name string
(8h), NAA (3h),
or EUI-64 based (2h).
The order of precedence when choosing a VPD 83h identifier to return is: SCSI name string
type has precedence over NAA or EUI-64 based, and NAA has
precedence over EUI-64 based.
Memory is allocated by the server and MUST be freed by the client.
pwszSerialNumber: A null-terminated
string containing the VPD page 80h (Unit
Serial Number see [SPC-3]section 7.6.10). This field is optional, as
defined in [SPC-3] (it can be all spaces). Memory for this string is allocated
by the server and MUST be freed by the client.
guidPoolId: The identifier of the storage pool that the disk is a member of. If the disk is not a member of a storage pool, this field MUST be initialized to zero.