DEVICE_LB_PROVISIONING_DESCRIPTOR结构(ntddstor.h)
DEVICE_LB_PROVISIONING_DESCRIPTOR 结构是从 IOCTL_STORAGE_QUERY_PROPERTY 请求返回的查询结果结构之一。 此结构包含存储设备的精简预配功能。
语法
typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR {
ULONG Version;
ULONG Size;
UCHAR ThinProvisioningEnabled : 1;
UCHAR ThinProvisioningReadZeros : 1;
UCHAR AnchorSupported : 3;
UCHAR UnmapGranularityAlignmentValid : 1;
UCHAR GetFreeSpaceSupported : 1;
UCHAR MapSupported : 1;
UCHAR Reserved1[7];
ULONGLONG OptimalUnmapGranularity;
ULONGLONG UnmapGranularityAlignment;
ULONG MaxUnmapLbaCount;
ULONG MaxUnmapBlockDescriptorCount;
} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR;
成员
Version
此结构的版本。
Size
此结构的大小。 这设置为 sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR)
。
ThinProvisioningEnabled
已启用精简预配的状态。
价值 | 意义 |
---|---|
0 | 精简预配已禁用。 |
1 | 已启用精简预配。 |
ThinProvisioningReadZeros
读取到未映射的区域返回零。
价值 | 意义 |
---|---|
0 | 从未映射区域读取的数据未定义。 |
1 | 读取返回零。 |
AnchorSupported
支持定位的 LBA 映射状态。
价值 | 意义 |
---|---|
0 | 不支持定位的 LBA 映射状态。 |
1 | 支持定位的 LBA 映射状态。 |
UnmapGranularityAlignmentValid
设备未映射粒度对齐的有效性。
价值 | 意义 |
---|---|
0 | 取消映射粒度对齐无效。 |
1 | 取消映射粒度对齐有效。 |
GetFreeSpaceSupported
指示对 DeviceDsmAction_GetFreeSpace的支持。
价值 | 意义 |
---|---|
0 | 不支持 DeviceDsmAction_GetFreeSpace。 |
1 | 支持 DeviceDsmAction_GetFreeSpace。 |
MapSupported
指示对 DeviceDsmAction_Map的支持。
价值 | 意义 |
---|---|
0 | 不支持 DeviceDsmAction_Map。 |
1 | 支持 DeviceDsmAction_Map。 |
Reserved1[7]
保留;请勿使用。
OptimalUnmapGranularity
设备未映射粒度的最佳块数。
UnmapGranularityAlignment
当前值(以块为单位)用于在设备上取消映射粒度对齐。 UnmapGranularityAlignmentValid 的值指示此成员的有效性。
MaxUnmapLbaCount
单个 UNMAP 命令中可以取消映射的最大 LBA 量(以逻辑块为单位)。 从 Windows 10 开始有效。
MaxUnmapBlockDescriptorCount
单个 UNMAP 命令中允许的最大描述符数。 从 Windows 10 开始有效。
言论
当 STORAGE_PROPERTY_QUERY 的 PropertyId 成员设置为 StorageDeviceLBProvisioningProperty时,此结构在系统缓冲区中从 IOCTL_STORAGE_QUERY_PROPERTY 请求中返回。
DEVICE_LB_PROVISIONING_DESCRIPTOR 结构将写入系统缓冲区(Irp->AssociatedIrp.SystemBuffer),其值为 Parameters.DeviceIoControl.OutputBufferLength 中设置的 sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR)。
如果 UnmapGranularityAlignmentValid 为 0,则使用 UnmapGranularityAlignment 的任何代码都应假定其值为 0。
如果基础存储设备是 SCSI 设备,则可以查询取消映射功能。 如果 TrimEnabledDEVICE_TRIM_DESCRIPTOR 结构的成员为 TRUE,则支持 UNMAP。 当 STORAGE_PROPERTY_QUERY 的 PropertyId 成员设置为 StorageDeviceTrimProperty时,DEVICE_TRIM_DESCRIPTOR 结构在系统缓冲区中从 IOCTL_STORAGE_QUERY_PROPERTY 请求中返回。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
标头 | ntddstor.h (包括 Ntddstor.h) |