2.2.6 DISK_PROPS_EX
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
83h
, a device ASSOCIATION (see [SPC-3] table 297), and IDENTIFIER TYPE (see [SPC-3] table 298) of Type 8, Type 3, or Type 2.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.