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.