VDS_POOL_ATTRIBUTES structure (vds.h)
[Beginning with Windows 8 and Windows Server 2012, the Virtual Disk Service COM interface is superseded by the Windows Storage Management API.]
Defines the attributes of a storage pool.
Syntax
typedef struct _VDS_POOL_ATTRIBUTES {
ULONGLONG ullAttributeMask;
VDS_RAID_TYPE raidType;
VDS_STORAGE_BUS_TYPE busType;
LPWSTR pwszIntendedUsage;
BOOL bSpinDown;
BOOL bIsThinProvisioned;
ULONGLONG ullProvisionedSpace;
BOOL bNoSinglePointOfFailure;
ULONG ulDataRedundancyMax;
ULONG ulDataRedundancyMin;
ULONG ulDataRedundancyDefault;
ULONG ulPackageRedundancyMax;
ULONG ulPackageRedundancyMin;
ULONG ulPackageRedundancyDefault;
ULONG ulStripeSize;
ULONG ulStripeSizeMax;
ULONG ulStripeSizeMin;
ULONG ulDefaultStripeSize;
ULONG ulNumberOfColumns;
ULONG ulNumberOfColumnsMax;
ULONG ulNumberOfColumnsMin;
ULONG ulDefaultNumberofColumns;
ULONG ulDataAvailabilityHint;
ULONG ulAccessRandomnessHint;
ULONG ulAccessDirectionHint;
ULONG ulAccessSizeHint;
ULONG ulAccessLatencyHint;
ULONG ulAccessBandwidthWeightHint;
ULONG ulStorageCostHint;
ULONG ulStorageEfficiencyHint;
ULONG ulNumOfCustomAttributes;
VDS_POOL_CUSTOM_ATTRIBUTES *pPoolCustomAttributes;
BOOL bReserved1;
BOOL bReserved2;
ULONG ulReserved1;
ULONG ulReserved2;
ULONGLONG ullReserved1;
ULONGLONG ullReserved2;
} VDS_POOL_ATTRIBUTES, *PVDS_POOL_ATTRIBUTES;
Members
ullAttributeMask
A mask that specifies the attributes in the structure that are defined by this storage pool.
The list of valid attribute flags is as follows. Each flag corresponds to a member in the VDS_POOL_ATTRIBUTES structure. Unused bits are reserved.
raidType
A VDS_RAID_TYPE enumeration value that specifies the RAID type of the storage pool. If the storage pool does not have a specific RAID type, set this member to VDS_RT_UNKNOWN and clear the VDS_POOL_ATTRIB_RAIDTYPE attribute flag in the ullAttributeMask member.
busType
A VDS_STORAGE_BUS_TYPE enumeration value that specifies the bus type of the drives in the storage pool.
pwszIntendedUsage
A string that specifies the usage of the storage pool. Typically, this may indicate the application that is using the storage pool (for example, "SQL" or "Exchange") or the business function that is using the storage pool (for example, "Finance" or "Human Resources").
bSpinDown
TRUE if the drives in the storage pool spin down automatically to reduce power usage, or FALSE otherwise.
bIsThinProvisioned
TRUE if the storage pool is thin provisioned, or FALSE otherwise. If the pool is thin provisioned, the number of bytes in the consumed space of the pool could be less than the number of bytes in the provisioned space of the pool. (The number of bytes in the provisioned space is stored in the ullProvisionedSpace member of this structure. The number of bytes in the consumed space is stored in the ullTotalConsumedSpace member of the VDS_STORAGE_POOL_PROP structure.) When a hardware provider sets this member to TRUE, it must also set the type member of the VDS_STORAGE_POOL_PROP structure to VDS_SPT_CONCRETE.
ullProvisionedSpace
If the pool is thin provisioned, this member specifies the space, in bytes, that is provisioned for the pool. The value of this member must be greater than or equal to the value of the ullTotalConsumedSpace member of the VDS_STORAGE_POOL_PROP structure.
bNoSinglePointOfFailure
TRUE if there is no single point of failure in the pool, or FALSE otherwise.
ulDataRedundancyMax
The maximum number of complete copies of the data that can be maintained in this storage pool.
ulDataRedundancyMin
The minimum number of complete copies of the data that can be maintained in this storage pool.
ulDataRedundancyDefault
The default number of complete copies of the data that are maintained in this storage pool.
ulPackageRedundancyMax
The maximum number of drives that can be used in the storage pool to ensure package redundancy. Package redundancy indicates the number of drives that can fail in the storage pool without resulting in a data loss.
ulPackageRedundancyMin
The minimum number of drives that can be used in the storage pool to ensure package redundancy. Package redundancy indicates the number of drives that can fail in the storage pool without resulting in a data loss.
ulPackageRedundancyDefault
The default number of drives that are used in the storage pool to ensure package redundancy. Package redundancy indicates the number of drives that can fail in the storage pool without resulting in a data loss.
ulStripeSize
The mirror or parity stripe size, in bytes, of the storage pool if the pool is striped (with or without parity).
ulStripeSizeMax
The maximum stripe size, in bytes, that is supported by the storage pool.
ulStripeSizeMin
The minimum stripe size, in bytes, that is supported by the storage pool.
ulDefaultStripeSize
The default stripe size, in bytes, that is supported by the storage pool.
ulNumberOfColumns
The number of columns of the storage pool if the pool is striped (with or without parity).
ulNumberOfColumnsMax
The maximum number of columns supported by the storage pool.
ulNumberOfColumnsMin
The minimum number of columns supported by the storage pool.
ulDefaultNumberofColumns
The default number of columns supported by the storage pool.
ulDataAvailabilityHint
A hint from the client that indicates the importance placed on data availability. Values range from 0 (Not Important) to 10 (Very Important).
ulAccessRandomnessHint
A hint from the client that indicates the randomness of data access. Values range from 0 (Entirely Sequential) to 10 (Entirely Random).
ulAccessDirectionHint
A hint from the client that indicates the direction of data access. Values range from 0 (Entirely Read) to 10 (Entirely Write).
ulAccessSizeHint
A hint from the client that indicates the optimal access size in megabytes.
ulAccessLatencyHint
A hint from the client that indicates the importance of access latency to the client. Values range from 0 (Not Important) to 10 (Very Important).
ulAccessBandwidthWeightHint
A hint from the client that indicates the importance of high bandwidth. Values range from 0 (Not Important) to 10 (Very Important).
ulStorageCostHint
A hint from the client that indicates the importance of storage cost to the client. Values range from 0 (Not Important) to 10 (Very Important). If the storage cost is very important to the client, a value of 10 indicates that the client would prefer to provision the pool using lower cost storage.
ulStorageEfficiencyHint
A hint from the client that indicates the importance of storage efficiency to the client. Values range from 0 (Not Important) to 10 (Very Important).
ulNumOfCustomAttributes
The number of custom attributes defined for the storage pool.
pPoolCustomAttributes
An array of VDS_POOL_CUSTOM_ATTRIBUTES structures. Each structure contains a custom attribute that is defined for the storage pool.
bReserved1
This member is reserved for future use. Do not use.
bReserved2
This member is reserved for future use. Do not use.
ulReserved1
This member is reserved for future use. Do not use.
ulReserved2
This member is reserved for future use. Do not use.
ullReserved1
This member is reserved for future use. Do not use.
ullReserved2
This member is reserved for future use. Do not use.
Remarks
If an attribute is set for a storage pool, that attribute setting must apply to all drive extents that make up the pool.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Header | vds.h |