Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура 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
Максимальное количество LBAs, которые можно отменить в одной команде UNMAP в единицах логических блоков. Допустимая начиная с Windows 10.
MaxUnmapBlockDescriptorCount
Максимальное количество дескрипторов, разрешенных в одной команде UNMAP. Допустимая начиная с Windows 10.
Замечания
Эта структура возвращается в системном буфере из запроса IOCTL_STORAGE_QUERY_PROPERTY, когда элемент PropertyIdSTORAGE_PROPERTY_QUERY имеет значение StorageDeviceLBProvisioningProperty.
Структура DEVICE_LB_PROVISIONING_DESCRIPTOR записывается в системный буфер, Irp->AssociatedIrp.SystemBufferс значением sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR) в Parameters.DeviceIoControl.OutputBufferLength для текущего расположения стека IRP.
Если unmapGranularityAlignmentValid равно 0, то любой код с помощью UnmapGranularityAlignment должен предположить, что он имеет значение 0.
Если базовое устройство хранилища является устройством SCSI, можно запросить возможность отмены сопоставления. Если элемент TrimEnabled структуры DEVICE_TRIM_DESCRIPTOR имеет значение TRUE, поддерживается UNMAP. Структура DEVICE_TRIM_DESCRIPTOR возвращается в системном буфере из запроса IOCTL_STORAGE_QUERY_PROPERTY, когда элемент PropertyIdSTORAGE_PROPERTY_QUERY имеет значение StorageDeviceTrimProperty.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 8 |
| заголовка | ntddstor.h (include Ntddstor.h) |