структура PORT_CONFIGURATION_INFORMATION (srb.h)

PORT_CONFIGURATION_INFORMATION (SCSI) содержит сведения о конфигурации для HBA. Драйвер порта, зависящий от ОС, выделяет и инициализирует эту структуру, предоставляет как можно больше сведений о конфигурации HBA и передает структуру в подпрограмму HwScsiFindAdapter драйвера miniport. Драйвер порта получает некоторые сведения для этой структуры из HW_INITIALIZATION_DATA структуры драйвера минипорта. Подпрограмма HwScsiFindAdapter драйвера miniport отвечает за определение того, может ли драйвер минипорта поддерживать HBA и, если да, за заполнение соответствующих оставшихся сведений в структуре PORT_CONFIGURATION_INFORMATION.

Примечание

В будущем драйвер портов SCSI и модели драйверов мини-порта SCSI могут быть изменены или недоступны. Вместо этого используйте драйверы Storport и модели драйверов мини-порта Storport .

Синтаксис

typedef struct _PORT_CONFIGURATION_INFORMATION {
  ULONG           Length;
  ULONG           SystemIoBusNumber;
  INTERFACE_TYPE  AdapterInterfaceType;
  ULONG           BusInterruptLevel;
  ULONG           BusInterruptVector;
  KINTERRUPT_MODE InterruptMode;
  ULONG           MaximumTransferLength;
  ULONG           NumberOfPhysicalBreaks;
  ULONG           DmaChannel;
  ULONG           DmaPort;
  DMA_WIDTH       DmaWidth;
  DMA_SPEED       DmaSpeed;
  ULONG           AlignmentMask;
  ULONG           NumberOfAccessRanges;
  ACCESS_RANGE( )   *AccessRanges[];
  PVOID           Reserved;
  UCHAR           NumberOfBuses;
  UCHAR           InitiatorBusId[8];
  BOOLEAN         ScatterGather;
  BOOLEAN         Master;
  BOOLEAN         CachesData;
  BOOLEAN         AdapterScansDown;
  BOOLEAN         AtdiskPrimaryClaimed;
  BOOLEAN         AtdiskSecondaryClaimed;
  BOOLEAN         Dma32BitAddresses;
  BOOLEAN         DemandMode;
  BOOLEAN         MapBuffers;
  BOOLEAN         NeedPhysicalAddresses;
  BOOLEAN         TaggedQueuing;
  BOOLEAN         AutoRequestSense;
  BOOLEAN         MultipleRequestPerLu;
  BOOLEAN         ReceiveEvent;
  BOOLEAN         RealModeInitialized;
  BOOLEAN         BufferAccessScsiPortControlled;
  UCHAR           MaximumNumberOfTargets;
  UCHAR           ReservedUchars[2];
  ULONG           SlotNumber;
  ULONG           BusInterruptLevel2;
  ULONG           BusInterruptVector2;
  KINTERRUPT_MODE InterruptMode2;
  ULONG           DmaChannel2;
  ULONG           DmaPort2;
  DMA_WIDTH       DmaWidth2;
  DMA_SPEED       DmaSpeed2;
  ULONG           DeviceExtensionSize;
  ULONG           SpecificLuExtensionSize;
  ULONG           SrbExtensionSize;
  UCHAR           Dma64BitAddresses;
  BOOLEAN         ResetTargetSupported;
  UCHAR           MaximumNumberOfLogicalUnits;
  BOOLEAN         WmiDataProvider;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

Участники

Length

Задает размер этой структуры в байтах. По сути, этот элемент, который всегда инициализирован драйвером портов для конкретной ОС, указывает версию этой структуры, используемой драйвером порта.

SystemIoBusNumber

Указывает назначенный системой номер шины ввода-вывода, к которой подключен HBA. Драйвер порта для конкретной ОС всегда инициализирует этот элемент. Его значение назначается системой, так как платформа может иметь несколько автобусов ввода-вывода заданного AdapterInterfaceType.

AdapterInterfaceType

Определяет интерфейс шины ввода-вывода. Драйвер порта для конкретной ОС всегда устанавливает этот элемент в значение, указанное драйвером мини-порта в структуре HW_INITIALIZATION_DATA (SCSI ).

BusInterruptLevel

Указывает уровень запроса на прерывание относительно шины. Драйвер порта для конкретной ОС не предполагает использования прерываний HBA, поэтому значение по умолчанию равно нулю. В зависимости от заданного AdapterInterfaceType и HBA значение, заданное для этого элемента, может соответствовать IRQL для шины, например для автобусов типа Isa и MicroChannel . Если адаптер настроен для прерываний с учетом уровня, драйверы Eisa HBA должны установить это значение на относительную шину IRQL для HBA.

BusInterruptVector

Указывает относительный вектор шины, возвращаемый HBA. Драйвер порта для конкретной ОС не предполагает использования прерываний HBA, поэтому значение по умолчанию равно нулю. Этот член не имеет значения для драйверов, которые настроили член BusInterruptLevel для их HBA. Это уместно для HBAs на типах автобусов ввода-вывода, использующих векторы прерываний, такие как PCIBus.

InterruptMode

Указывает, использует ли HBA прерывания LevelSensitive или Latched (иногда называемые прерываниями с триггером edge). Драйвер порта для конкретной ОС инициализирует этот элемент в соответствующее значение шины и устройства, например LevelSensitive для PCIBus. Драйверы Eisa HBAs должны сбросить это значение, если адаптер настроен для прерываний с учетом уровня, как и драйверы HBAs на автобусах ввода-вывода, которые используют прерывания с учетом уровня, такие как автобусы типа MicroChannel .

MaximumTransferLength

Указывает максимальное количество байтов, которое HBA может передавать в рамках одной операции передачи. По умолчанию значение этого элемента SP_UNINITIALIZED_VALUE, которое указывает неограниченный максимальный размер передачи. Если его HBA имеет более ограниченную поддержку передачи, мини-порт драйвер должен сбросить этот член в соответствии с пропускной способностью HBA. Если подпрограмма HwScsiInterrupt драйвера мини-порта не может отключить прерывания на HBA, этот элемент можно настроить во время разработки драйверов, чтобы убедиться, что время, затраченное на isR мини-порта, не приводит к тому, что мышь будет "прыгать" или последовательную или параллельную пропускную способность, чтобы перейти на заметный для пользователя уровень.

NumberOfPhysicalBreaks

Указывает максимальное количество разрывов между диапазонами адресов, которые может иметь буфер данных, если HBA поддерживает точечную или сборную. Другими словами, количество точечной или сборной списков минус один. По умолчанию значение этого элемента SP_UNINITIALIZED_VALUE, которое указывает, что HBA может поддерживать неограниченное количество физических дискосмысленности. Если драйвер порта задает значение для этого элемента, мини-порт может изменить значение ниже, но не выше. Если этот элемент SP_UNINITIALIZED_VALUE, драйвер мини-порта должен сбросить этот элемент в соответствии с емкостью точечной и сборной HBA, ноль не представляет поддержку точечной или сбора.

DmaChannel

Указывает канал DMA, используемый подчиненным HBA. По умолчанию значение этого элемента SP_UNINITIALIZED_VALUE. Если HBA использует системный контроллер DMA, а заданный AdapterInterfaceType является любым значением, кроме MicroChannel, драйвер мини-порта должен сбросить этот элемент.

DmaPort

Указывает порт DMA, используемый подчиненным HBA. По умолчанию значение этого элемента SP_UNINITIALIZED_VALUE. Если HBA использует системный контроллер DMA, а заданный AdapterInterfaceTypeMicroChannel, драйвер мини-порта должен задать этот элемент.

DmaWidth

Указывает ширину передачи DMA, если HBA использует DMA. По умолчанию значение этого элемента равно нулю. Если его HBA выполняет DMA, драйвер мини-порта должен сбросить этот элемент до одного из следующих: Width8Bits, Width16Bits или Width32Bits.

DmaSpeed

Указывает скорость передачи данных DMA для Eisa HBAs. По умолчанию значение этого элемента указывает время совместимости. Допустимые значения для этого элемента: совместимы, TypeA, TypeB или TypeC.

AlignmentMask

Содержит маску, указывающую ограничения выравнивания буферов, необходимых HBA для операций передачи. Допустимые значения маски также ограничены характеристиками диспетчеров памяти в разных версиях Windows. Значения маски, разрешенные в Windows 95 или Windows 98, имеют значение 0 (выравнивание по байтам), 1 (выравнивание по словам) или 3 (выравнивание по слову). В разделе Windows NT и Windows 2000 допустимые значения маски: 0 (выровнены по байтам), 1 (выравнивание по словам), 3 (выравнивание по слову) и 7 (двойное выравнивание DWORD). Драйвер минипорта должен задать эту маску, если HBA поддерживает точечную или сборную.

NumberOfAccessRanges

Указывает количество элементов AccessRanges в массиве, описанное далее. Драйвер порта, зависящий от ОС, всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA, когда драйвер мини-порта с именем ScsiPortInitialize.

AccessRanges

Reserved

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

NumberOfBuses

Указывает количество автобусов SCSI, управляемых HBA. По умолчанию значение этого элемента равно нулю.

InitiatorBusId[8]

Указывает идентификатор шины инициатора. Если входной атрибут InitiatorBusId[0] имеет нулевое значение, драйвер мини-порта может назначить значение по умолчанию, если его HBA не требует использования определенных значений, определяемых запросом HBA. В противном случае драйвер минипорта должен использовать любое ненулевое значение, назначенное драйвером порта, если это возможно. Каждый минипорт-драйвер должен обновить спецификации InitiatorBusId в соответствии с тем, что использует его HBA, при необходимости запрашивая HBA для определения соответствующих значений.

Минипорт-драйвер должен задать запись для каждой шины SCSI, поддерживаемой HBA, как указано в значении NumberOfBuses.

ScatterGather

Указывает, когда значение TRUE поддерживает точечную или сборную. Если значение FALSE , HBA не поддерживает точечную или сборную. По умолчанию значение этого элемента равно FALSE.

Master

Указывает, когда значение TRUE является главной шиной HBA. Если задано значение FALSE, HBA не является главной шиной. По умолчанию значение этого элемента равно FALSE.

CachesData

Указывает, когда значение TRUE кэширует данные или сохраняет кэшированное состояние на периферийных устройствах. Если значение FALSE , HBA не кэширует данные или не сохраняет кэшированное состояние на периферийных устройствах. По умолчанию значение этого элемента равно FALSE. Если этот параметр сбрасывается до TRUE, драйвер порта, зависящий от ОС, уведомляет драйвер мини-порта при возникновении определенных системных событий, таких как очистка кэша файловой системы и завершение работы системы. Например, если контроллер на шине зеркально отражает два диска, драйвер минипорта обычно устанавливает для этого члена значение TRUE.

AdapterScansDown

Указывает, когда значение TRUE проверяет BIOS для HBA для целевых объектов SCSI шины от семи до нуля. Если значение FALSE, BIOS для HBA ищет целевые объекты SCSI шины, начиная с нуля идентификатора и сканирования вверх (но не включая) MaximumTargetIds. По умолчанию значение AdapterScansDown равно FALSE.

AtdiskPrimaryClaimed

Указывает, когда значение TRUE указывает, что основной диапазон адресов диска , совместимый с AT (WD1003), 0x1F0 для 0x1FF, был заявлен в реестре другим драйвером для своего устройства. Драйвер порта для конкретной ОС всегда инициализирует этот элемент. Если входное значение этого члена равно TRUE, мини-драйвер должен предположить, что уже загруженный драйвер утверждал диапазон устройств. Если входное значение равно FALSE, мини-драйвер может претендовать на диапазон адресов для контроллера HBA, который эмулирует контроллер диска AT и сбрасывает этот элемент в значение TRUE, тем самым предотвращая доступ к этому диапазону драйвером диска AT или впоследствии загруженными драйверами мини-порта.

AtdiskSecondaryClaimed

Указывает, когда значение TRUE указывает, что диапазон адресов дополнительного диска AT 0x170 для 0x17F был заявлен в реестре другим драйвером для своего устройства. Если значение FALSE для дополнительного диапазона адресов диска AT не было заявлено в реестре другим драйвером. Драйвер порта для конкретной ОС всегда инициализирует этот элемент. Драйверы минипорта должны рассматривать этот элемент как atdiskPrimaryClaimed.

Dma32BitAddresses

Указывает, когда значение TRUE содержит 32 адресных линий HBA и может получить доступ к памяти с физическими адресами, превышающими 0x00FFFFFF. Если значение FALSE для HBA содержит несколько строк адресов DMA, отличных от 32. По умолчанию значение этого элемента равно FALSE. Если драйвер miniport задает Dma64BitAddresses, этот элемент должен иметь значение FALSE.

DemandMode

Указывает, когда значение TRUE должно быть запрограммировано для системного контроллера DMA в режиме спроса, а не для операций с одним циклом. Если HBA не является подчиненным устройством, этот элемент должен иметь значение FALSE.

MapBuffers

Указывает, когда значение TRUE должно быть сопоставлено буферам данных с диапазонами виртуальных адресов системы. Если значение FALSE буферы данных не должны сопоставляться с системными виртуальными адресами. Драйвер порта для конкретной ОС всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA (SCSI), когда мини-порт с именем ScsiPortInitialize. Минипорт-драйвер может сбросить это значение для любого определенного элемента управления HBA. Если значение РАВНО FALSE, драйвер мини-порта не должен напрямую обращаться к Srb.DataBuffer .

NeedPhysicalAddresses

Указывает, когда драйвер минипорта должен преобразовывать виртуальные адреса в физические адреса в соответствии с требованиями HBA. При значении FALSE драйвер мини-порта не должен переводить виртуальные адреса на физические адреса. Драйвер порта для конкретной ОС всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA (SCSI), когда мини-порт с именем ScsiPortInitialize. Минипорт-драйвер может сбросить это значение для любого определенного элемента управления HBA.

TaggedQueuing

Указывает , поддерживает ли HBA очередь нескольких запросов с тегами SCSI. Если значение FALSE, HBA не поддерживает очередь с тегами SCSI. Драйвер порта для конкретной ОС всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA (SCSI), когда мини-порт с именем ScsiPortInitialize. Минипорт-драйвер может сбросить это значение для любого определенного элемента управления HBA.

AutoRequestSense

Указывает, когда значение TRUE поддерживает функцию автозапуска HBA. Если значение FALSE , HBA не поддерживает автозапросить чувство. Драйвер порта для конкретной ОС всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA (SCSI), когда мини-порт с именем ScsiPortInitialize. Минипорт-драйвер может сбросить это значение для любого определенного элемента управления HBA. Этот член должен иметь значение TRUE , прежде чем драйвер шины главного контроллера безопасности вызывает ScsiPortGetUncachedExtension.

MultipleRequestPerLu

Указывает, когда значение TRUE поддерживает несколько запросов на логическую единицу. Если значение FALSE , HBA не поддерживает несколько запросов на логическую единицу. Механизм, с помощью которого адаптер кэширует запросы, определяется адаптером. Драйвер порта для конкретной ОС всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA (SCSI), когда мини-порт с именем ScsiPortInitialize. Минипорт-драйвер может сбросить это значение для любого определенного элемента управления HBA.

ReceiveEvent

Указывает, когда значение TRUE поддерживает операции получения и события SCSI. Если значение FALSE , HBA не поддерживает операции получения-события SCSI. Драйвер порта для конкретной ОС всегда задает этому элементу значение, переданное в структуре HW_INITIALIZATION_DATA (SCSI), когда мини-порт с именем ScsiPortInitialize. Минипорт-драйвер может сбросить это значение для любого определенного элемента управления HBA.

RealModeInitialized

Указывает, когда драйвер реального режима (x86) уже инициализировал HBA. Если значение FALSE не было инициализировано драйвером реального режима. Драйвер порта, зависящий от ОС, всегда инициализирует этот элемент. Если задано значение TRUE, драйвер мини-порта не должен инициализировать его HBA, если последовательность инициализации драйвера идентична инициализации HBA в реальном режиме; не повторно инициализация HBA в этих обстоятельствах делает мини-порт драйвер загружать гораздо быстрее. Значение этого члена не имеет значения для любого минипорт-драйвера, который всегда инициализирует его HBA во время работы в защищенном режиме на платформах x86 и для всех драйверов минипорта, для которых он нематериальен независимо от того, работают ли они на платформе на основе CISC или RISC.

BufferAccessScsiPortControlled

Указывает, когда драйвер минипорта всегда вызывает ScsiPortXxx для доступа к буферам данных и (или) информации о смысле запроса в SRBs, что позволяет драйверу порта для конкретной ОС оптимизировать обработку запросов ввода-вывода. Если false , драйвер минипорта не должен вызывать подпрограммы ScsiPortXxx для доступа к буферам данных или информации о смысле запроса. Если для этого элемента задано значение FALSE , производительность ввода-вывода может снизиться. Процедуры вызова, отличные от ScsiPortXxx, делают мини-порт драйвер непортируемым в операционных системах Майкрософт.

MaximumNumberOfTargets

Указывает количество целевых периферийных устройств, которые может управлять HBA. По умолчанию значение этого элемента SCSI_MAXIMUM_TARGETS в соответствии со стандартом SCSI. Мини-драйвер может сбросить этот элемент до меньшего значения, если HBA имеет более ограниченные возможности или большее значение, указывая, что HBA имеет расширенные возможности SCSI или Fibre Channel. Это значение ограничено SCSI_MAXIMUM_TARGETS_PER_BUS.

ReservedUchars[2]

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

SlotNumber

Указывает номер слота HBA с соответствующими значениями VendorId и DeviceId , которые были указаны в структуре HW_INITIALIZATION_DATA (SCSI) при использовании драйвера мини-порта с именем ScsiPortInitialize.

BusInterruptLevel2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

BusInterruptVector2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

InterruptMode2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

DmaChannel2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

DmaPort2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

DmaWidth2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

DmaSpeed2

Зарезервировано для использования системой и недоступно для использования мини-драйверами.

DeviceExtensionSize

Задает размер в байтах, необходимый мини-драйверу для расширения устройства HBA для обработки передачи данных размером более 64 КБ, что может потребовать большего размера списков точечной и сборной, чем размер, определенный в реестре для этого драйвера.

SpecificLuExtensionSize

Задает размер в байтах, необходимый драйверу мини-порта для каждого логического хранилища единиц хранения, если таковые есть, для обработки передачи данных размером более 64 КБ. Оставьте этот элемент равным нулю, если драйвер мини-порта не поддерживает сведения о lu, для которых требуется хранилище. Это значение основано на предположении, что HBA может получать 32-разрядные адреса независимо от того, что контроллер может поддерживать. Если для обработки 64-разрядных адресов требуется дополнительное пространство в расширениях LUN или SRB, необходимо внести соответствующие изменения в это значение перед использованием с подпрограммами, такими как ScsiPortGetUncachedExtension.

SrbExtensionSize

Задает размер в байтах, необходимый драйверу мини-порта для хранилища для каждого запроса, если таковые есть, для обработки передачи данных размером более 64 КБ. Задайте этот элемент перед вызовом ScsiPortGetUncachedExtension , чтобы изменить размер хранилища для каждого запроса на основе NumberOfPhysicalBreaks. Оставьте этот элемент равным нулю, если драйвер мини-порта не поддерживает сведения о SRB, для которых требуется хранилище. Это значение основано на предположении, что HBA может получать 32-разрядные адреса независимо от того, что контроллер может поддерживать. Если для обработки 64-разрядных адресов требуется дополнительное пространство в расширениях LUN или SRB, необходимо внести соответствующие изменения в это значение перед использованием с подпрограммами, такими как ScsiPortGetUncachedExtension.

Dma64BitAddresses

Указывает, что HBA может получить доступ к адресам размером более 4 ГБ или 0x0FFFFFFFF, если Dma64BitAddresses содержит значение SCSI_DMA64_MINIPORT_SUPPORTED. До Windows 2000 ScsiPort установите это значение на основе содержимого HW_INITIALIZATION_DATA (SCSI). Это больше не требуется. В Windows 2000 значение Dma64BitAddresses определяется только обратным вызовом драйвера мини-порта HwScsiFindAdapter . Если операционная система поддерживает 64-разрядное адресное пространство, драйвер порта передает значение SCSI_DMA64_SYSTEM_SUPPORTED драйверу мини-порта в этом элементе. Если HBA, описанный PORT_CONFIGURATION_INFORMATION также поддерживает адресные пространства, превышающие 32 бита, драйвер порта или мини-порта требуется для поддержки полной 64-разрядной адресации, а обратный вызов драйвера miniport HwScsiFindAdapter указывает на это, назначив значение SCSI_DMA64_MINIPORT_SUPPORTED dma64BitAddresses, записывая любое предыдущее значение, назначенное драйвером порта. Правильное значение должно быть присвоено члену Dma64BitAddresses , прежде чем драйвер мини-порта вызывает ScsiPortGetUncachedExtension.

ResetTargetSupported

Является устаревшей. Драйвер ScsiPort больше не отправляет SRB_FUNCTION_RESET_DEVICE запросы к его драйверам минипорта. Не используйте этот элемент.

MaximumNumberOfLogicalUnits

Указывает максимальное количество логических единиц на целевой объект, который может управлять HBA. По умолчанию значение этого элемента равно SCSI_MAXIMUM_LOGICAL_UNITS. Мини-порт драйвер может сбросить этот элемент до меньшего значения, если HBA имеет более ограниченные возможности или большее значение, указывая, что HBA имеет возможности SCSI-3.

WmiDataProvider

Указывает, когда драйвер мини-порта отвечает на запросы инструментария управления Windows (WMI). Если значение FALSE , драйвер минипорта не отвечает на запросы инструментария управления Windows (WMI). По умолчанию значение этого элемента равно FALSE.

Remarks

Конкретные члены, инициализированные, зависят от драйвера мини-порта HBA и от сведений о конфигурации, доступных драйверу порта для конкретной ОС. Драйвер порта, зависящий от ОС, устанавливает значения по умолчанию во всех элементах, для которых он не может предоставлять сведения о конфигурации подпрограмме HwScsiFindAdapter драйвера miniport.

Все драйверы мини-порта HBA должны иметь по крайней мере один набор значений по умолчанию для соответствующих членов, если драйвер порта для конкретной ОС не передает все инициализированные значения.

Подпрограмма HwScsiFindAdapter должна обновить все члены, относящиеся к адаптеру HBA, который поддерживает драйвер.

Windows NT драйверы класса хранения, которые загружаются позже, чем драйверы минипорта, зависят от информации, предоставленной подпрограммой HwScsiFindAdapter каждого драйвера miniport для настройки последующих запросов ввода-вывода. Например, значения MaximumTransferLength и NumberOfPhysicalBreaks , предоставляемые каждым драйвером мини-порта, определяют, должен ли драйвер класса разделить большие запросы на передачу в набор частичных передач, чтобы соответствовать ограничениям HBA.

Член Dma64BitAddresses PORT_CONFIGURATION_INFORMATION больше не должен рассматриваться как ЛОГИЧЕСКОЕ значение. Значение SCSI_DMA64_SYSTEM_SUPPORTED указывает, что драйвер порта или минипорта требуется для поддержки 64-разрядной адресации, но подпрограмма ScsiPortGetUncachedExtension по-прежнему интерпретирует любое ненулевое значение Dma64BitAddresses , указывающее, что требуется 64-разрядная поддержка. Это означает, что ScsiPortGetUncachedExtension по-прежнему работает правильно при вызове устаревшим драйвером, который назначает логические значения Dma64BitAddresses.

Помимо Dma64BitAddresses, как PORT_CONFIGURATION_INFORMATION, так и HW_INITIALIZATION_DATA имеют пару элементов с именем SpecificLuExtensionSize и SrbExtensionSize , значения которых теперь должны обрабатываться по-разному. Драйвер минипорта должен вычислить начальные значения SpecificLuExtensionSize и SrbExtensionSize в HW_INITIALIZATION_DATA на основе предположения, что HBA способен получать 32-разрядные адреса независимо от того, что контроллер может поддерживать. Значения по умолчанию для SpecificLuExtensionSize и SrbExtensionSize в PORT_CONFIGURATION_INFORMATION также будут основаны на предположении 32-разрядной адресации, так как значения в PORT_CONFIGURATION_INFORMATION являются производными от значений в HW_INITIALIZATION_DATA.

Это означает, что если драйверу мини-порта требуется дополнительное пространство в расширении LUN или расширении SRB для обработки 64-разрядных физических адресов, необходимо изменить значения для SpecificLuExtensionSize и SrbExtensionSize в PORT_CONFIGURATION_INFORMATION, чтобы учесть это перед передачей PORT_CONFIGURATION_INFORMATION в ScsiPortGetUncachedExtension.

Требования

   
Верхняя часть srb.h (include Srb.h, Storport.h, Strmini.h)

См. также

ACCESS_RANGE

HW_INITIALIZATION_DATA (SCSI)

HwScsiFindAdapter

ScsiPortGetDeviceBase

ScsiPortGetUncachedExtension

ScsiPortInitialize

ScsiPortValidateRange