структура 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
Максимальное количество LBA, которое можно распаковать в одной команде 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 (включая Ntddstor.h) |