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


структура STORAGE_ADAPTER_DESCRIPTOR (ntddstor.h)

Структура STORAGE_ADAPTER_DESCRIPTOR используется вместе с запросом IOCTL_STORAGE_QUERY_PROPERTY для получения данных дескриптора адаптера хранилища для устройства.

Синтаксис

typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
  ULONG   Version;
  ULONG   Size;
  ULONG   MaximumTransferLength;
  ULONG   MaximumPhysicalPages;
  ULONG   AlignmentMask;
  BOOLEAN AdapterUsesPio;
  BOOLEAN AdapterScansDown;
  BOOLEAN CommandQueueing;
  BOOLEAN AcceleratedTransfer;
#if ...
  BOOLEAN BusType;
#else
  UCHAR   BusType;
#endif
  USHORT  BusMajorVersion;
  USHORT  BusMinorVersion;
  UCHAR   SrbType;
  UCHAR   AddressType;
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;

Члены

Version

Содержит версию структуры STORAGE_ADAPTER_DESCRIPTOR. Значение этого элемента изменится по мере добавления элементов в структуру.

Size

Задает общий размер дескриптора в байтах.

MaximumTransferLength

Указывает максимальное количество байтов, которое адаптер шины узла (HBA) может передавать за одну операцию.

MaximumPhysicalPages

Указывает максимальное количество неоднородных физических страниц, которыми может управлять HBA за одну передачу (другими словами, степень поддержки точечной и сборной).

AlignmentMask

Указывает требования к выравниванию HBA для передачи. Драйвер класса хранения задает это значение в поле AlignmentRequirement в своих объектах устройства. Маска выравнивания указывает на ограничения выравнивания для буферов, необходимых адаптеру HBA для операций передачи. Допустимые значения маски: 0 (выравнивание по байтам), 1 (выравнивание по словам), 3 (выравнивание по DWORD) и 7 (двойное выравнивание DWORD).

AdapterUsesPio

Указывает при значении TRUE , что HBA использует программные входные и выходные данные (PIO) и требует использования виртуальных адресов системного пространства, сопоставленных с физической памятью для буферов данных. Если значение FALSE, HBA не использует piO.

AdapterScansDown

Указывает, когда значение TRUE проверяется на наличие устройств BIOS, т. е. HBA начинает сканирование с наибольшим номером устройства, а не с наименьшим. При значении FALSE HBA начинает сканирование с наименьшим номером устройства. Этот член зарезервирован для устаревших драйверов мини-портов.

CommandQueueing

Указывает, если значение TRUE , адаптер HBA поддерживает постановку в очередь с тегами SCSI и (или) внутренние очереди на логическую единицу или эквивалент, не относящееся к SCSI. При значении FALSE адаптер HBA не поддерживает ни очередь с тегами SCSI, ни внутренние очереди для каждой логической единицы.

AcceleratedTransfer

Указывает значение true , что HBA поддерживает синхронную передачу для ускорения операций ввода-вывода. При значении FALSE HBA не поддерживает синхронную передачу для ускорения операций ввода-вывода.

BusType

Задает значение типа STORAGE_BUS_TYPE , указывающее тип шины, к которой подключено устройство.

BusMajorVersion

Указывает основной номер версии (при наличии) адаптера HBA.

BusMinorVersion

Указывает дополнительный номер версии (при наличии) адаптера HBA.

SrbType

Указывает тип блока запросов SCSI (SRB), используемый адаптером HBA. Этот член действителен, начиная с Windows 8.

Значение Значение
SRB_TYPE_SCSI_REQUEST_BLOCK HBA использует блоки запросов SCSI.
SRB_TYPE_STORAGE_REQUEST_BLOCK HBA использует расширенные блоки запросов SCSI.

AddressType

Указывает тип адреса адаптера HBA. Этот член действителен, начиная с Windows 8.

Значение Значение
STORAGE_ADDRESS_TYPE_BTL8 HBA использует 8-разрядную шину, целевую и LUN-адресацию.

Комментарии

Драйверы класса хранилища выдают запрос на управление устройством с кодом элемента управления ввода-вывода IOCTL_STORAGE_QUERY_PROPERTY , чтобы получить эту структуру, которая содержит сведения о конфигурации из адаптера безопасности для операций передачи данных. Структуру можно получить либо из объекта устройства для шины, либо из объекта функционального устройства (FDO), который перенаправит запрос в базовую шину.

Если на адаптере HBA возникают чрезмерные ошибки протокола, поддерживающие синхронную передачу (AcceleratedTransfer имеет значение TRUE), драйвер класса хранилища может отключить синхронную передачу, задав SRB_FLAGS_DISABLE_SYNCH_TRANSFER в SRP.

Требования

Требование Значение
Заголовок ntddstor.h (включая Ntddstor.h)

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

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR