DEVICE_LB_PROVISIONING_DESCRIPTOR structure (winioctl.h)
The DEVICE_LB_PROVISIONING_DESCRIPTOR structure is one of the query result structures returned from an IOCTL_STORAGE_QUERY_PROPERTY request. This structure contains the thin provisioning capabilities for a storage device.
Syntax
typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR {
DWORD Version;
DWORD Size;
BYTE ThinProvisioningEnabled : 1;
BYTE ThinProvisioningReadZeros : 1;
BYTE AnchorSupported : 3;
BYTE UnmapGranularityAlignmentValid : 1;
BYTE GetFreeSpaceSupported : 1;
BYTE MapSupported : 1;
BYTE Reserved1[7];
DWORDLONG OptimalUnmapGranularity;
DWORDLONG UnmapGranularityAlignment;
DWORD MaxUnmapLbaCount;
DWORD MaxUnmapBlockDescriptorCount;
} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR;
Members
Version
Contains the size of this structure, in bytes. The value of this member will change as members are added to the structure.
Size
Specifies the total size of the data returned, in bytes. This may include data that follows this structure.
ThinProvisioningEnabled
The thin provisioning–enabled status.
Value | Meaning |
---|---|
|
Thin provisioning is disabled. |
|
Thin provisioning is enabled. |
ThinProvisioningReadZeros
Reads to unmapped regions return zeros.
Value | Meaning |
---|---|
|
Data read from unmapped regions is undefined. |
|
Reads return zeros. |
AnchorSupported
Deterministic read after trim support.
Value | Meaning |
---|---|
|
Deterministic read after trim is not supported. |
|
Deterministic read after trim is supported. |
UnmapGranularityAlignmentValid
The validity of unmap granularity alignment for the device.
Value | Meaning |
---|---|
|
Unmap granularity alignment is not valid. |
|
Unmap granularity alignment is valid. |
GetFreeSpaceSupported
MapSupported
Reserved1[7]
Reserved.
OptimalUnmapGranularity
The optimal number of logical sectors for unmap granularity for the device.
UnmapGranularityAlignment
The current value, in logical sectors, set for unmap granularity alignment on the device.
MaxUnmapLbaCount
Starting in Windows 10: The maximum number of LBAs that can be unmapped in a single unmap command, in logical blocks.
MaxUnmapBlockDescriptorCount
Starting in Windows 10: The maximum number of descriptors allowed in a single unmap command.
Remarks
This structure is returned from a IOCTL_STORAGE_QUERY_PROPERTY request when the PropertyId member of STORAGE_PROPERTY_QUERY is set to StorageDeviceLBProvisioningProperty.
If UnmapGranularityAlignmentValid = 0, then any code using UnmapGranularityAlignment should assume it has a value of 0.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 8 [desktop apps only] |
Minimum supported server | Windows Server 2012 [desktop apps only] |
Header | winioctl.h (include Windows.h) |