VDS_STORAGE_POOL_PROP 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 properties of a storage pool object.
Syntax
typedef struct _VDS_STORAGE_POOL_PROP {
VDS_OBJECT_ID id;
VDS_STORAGE_POOL_STATUS status;
VDS_HEALTH health;
VDS_STORAGE_POOL_TYPE type;
LPWSTR pwszName;
LPWSTR pwszDescription;
ULONGLONG ullTotalConsumedSpace;
ULONGLONG ullTotalManagedSpace;
ULONGLONG ullRemainingFreeSpace;
} VDS_STORAGE_POOL_PROP, *PVDS_STORAGE_POOL_PROP;
Members
id
A VDS_OBJECT_ID value that identifies the storage pool object.
status
A VDS_STORAGE_POOL_STATUS enumeration value that specifies the status of the storage pool.
health
A VDS_HEALTH enumeration value that specifies the health of the storage pool. The following are the valid values for this member.
Windows Server 2008, Windows Vista and Windows Server 2003: VDS_H_DEGRADED is not supported.
VDS_H_UNKNOWN (0)
VDS_H_HEALTHY (1)
VDS_H_DEGRADED (11)
type
A VDS_STORAGE_POOL_TYPE enumeration value that specifies the type of the storage pool.
pwszName
A string that specifies the name of the storage pool.
pwszDescription
A string that contains a description of the storage pool.
ullTotalConsumedSpace
The amount of physical storage backing the storage pool, in bytes. The value of this member must be less than or equal to the value of the ullProvisionedSpace member of the VDS_POOL_ATTRIBUTES structure.
ullTotalManagedSpace
The space, in bytes, in this storage pool that can be allocated to create child storage elements (LUNs or pools), including space that has already been allocated. Depending on the way the storage pool is configured, the value of this member can be much less than the value of the ullTotalConsumedSpace member. For example, if the storage pool is configured as a mirrored pool, the value of ullTotalManagedSpace is only half as large as the value of the ullTotalConsumedSpace member.
ullRemainingFreeSpace
The maximum size that may be used to create new LUNs or child storage pools from this pool, or to expand existing LUNs or child storage pools. To calculate the amount of managed space that has already been allocated to existing LUNs or child storage pools, subtract the value of this member from the value of the ullTotalManagedSpace member.
Remarks
The IVdsStoragePool::GetProperties returns this structure to report the properties of a storage pool object.
The following examples show how the ullTotalConsumedSpace, ullTotalManagedSpace, and ullRemainingFreeSpace members work together.
Example 1
Suppose you have 2 drives of 1 TB each. Suppose further that you do the following:- Create a storage pool as a mirror pool.
- Create a LUN whose size is 200 GB.
ullTotalConsumedSpace = 2 TB. This is the amount of storage pool space that is backed by physical storage or physical disks. Creating LUNs from the pool does not change this number.
ullTotalManagedSpace = 1 TB. This is the maximum size of the LUN or storage pool that can be created from this pool. Only 1 TB is available, because the pool type is a mirror with only 2 plexes.
ullRemainingFreeSpace = 800 GB (1 TB – 200 GB), because 200GB has already been allocated to a LUN.
(ullTotalManagedSpace - ullRemainingFreeSpace) is the amount of managed space allocated to LUNs and pools created from this pool. In this example, ullTotalManagedSpace - ullRemainingFreeSpace = 200 GB.
Example 2
Suppose you have 2 drives of 1 TB each. Suppose further that you do the following:- Create a storage pool as a mirror pool.
- Create a thin-provisioned LUN whose size is 10 TB.
ullProvisionedSpace = 10 TB. This applies only to thin-provisioned pools. This is the total space provisioned for the pool. The total space consumed by the pool is less than or equal to the total space provisioned for the pool.
ullTotalConsumedSpace = 2 TB.
ullTotalManagedSpace = 1 TB.
ullRemainingFreeSpace = 1 TB minus the amount of managed space currently backing the LUN.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Header | vds.h |