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