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


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

Максимальное количество 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)

См. также

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY