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 命令中取消映射的最大 BA 量(以逻辑块为单位)。 从 Windows 10 开始有效。
MaxUnmapBlockDescriptorCount
单个 UNMAP 命令中允许的最大描述符数。 从 Windows 10 开始有效。
注解
当 STORAGE_PROPERTY_QUERY 的 PropertyId 成员设置为 StorageDeviceLBProvisioningProperty 时,将从IOCTL_STORAGE_QUERY_PROPERTY请求的系统缓冲区中返回此结构。
DEVICE_LB_PROVISIONING_DESCRIPTOR 结构将写入系统缓冲区 Irp-AssociatedIrp.SystemBuffer>,其值 (DEVICE_LB_PROVISIONING_DESCRIPTOR) 在Parameters.DeviceIoControl.OutputBufferLength 中为当前 IRP 堆栈位置设置。
如果 UnmapGranularityAlignmentValid 为 0,则任何使用 UnmapGranularityAlignment 的代码都应假定其值为 0。
如果基础存储设备是 SCSI 设备,则可以查询取消映射功能。 如果 DEVICE_TRIM_DESCRIPTOR 结构的 TrimEnabled 成员为 TRUE,则支持 UNMAP。 当 STORAGE_PROPERTY_QUERY 的 PropertyId 成员设置为 StorageDeviceTrimProperty 时,IOCTL_STORAGE_QUERY_PROPERTY请求在系统缓冲区中返回DEVICE_TRIM_DESCRIPTOR结构。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
标头 | ntddstor.h (包括 Ntddstor.h) |