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 (include Ntddstor.h) |