структура 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 не использует ПИО.
AdapterScansDown
Указывает, когда TRUE, что HBA сканирует устройства 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 для получения этой структуры, содержащей сведения о конфигурации из HBA для операций передачи данных. Структура может быть получена из объекта устройства для шины или из функционального объекта устройства (FDO), который перенаправит запрос на базовую шину.
Если на HBA возникают чрезмерные ошибки протокола, поддерживающие синхронную передачу (AcceleratedTransferTRUE), драйвер класса хранилища может отключить синхронные передачи, задав SRB_FLAGS_DISABLE_SYNCH_TRANSFER в SRBS.
Требования
Требование | Ценность |
---|---|
заголовка | ntddstor.h (include Ntddstor.h) |