Поделиться через


структура 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)

См. также раздел

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY