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

PORT_CONFIGURATION_INFORMATION содержит сведения о конфигурации адаптера шины узла (HBA).

Синтаксис

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                                  MiniportDumpData;
  PVOID                                  Reserved;
  UCHAR                                  NumberOfBuses;
  CCHAR                                  InitiatorBusId[8];
  BOOLEAN                                ScatterGather;
  BOOLEAN                                Master;
  BOOLEAN                                CachesData;
  BOOLEAN                                AdapterScansDown;
  BOOLEAN                                AtdiskPrimaryClaimed;
  BOOLEAN                                AtdiskSecondaryClaimed;
  BOOLEAN                                Dma32BitAddresses;
  BOOLEAN                                DemandMode;
  UCHAR                                  MapBuffers;
  BOOLEAN                                NeedPhysicalAddresses;
  BOOLEAN                                TaggedQueuing;
  BOOLEAN                                AutoRequestSense;
  BOOLEAN                                MultipleRequestPerLu;
  BOOLEAN                                ReceiveEvent;
  BOOLEAN                                RealModeInitialized;
  BOOLEAN                                BufferAccessScsiPortControlled;
  UCHAR                                  MaximumNumberOfTargets;
  UCHAR                                  SrbType;
  UCHAR                                  AddressType;
  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;
  STOR_SYNCHRONIZATION_MODEL             SynchronizationModel;
  PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine;
  INTERRUPT_SYNCHRONIZATION_MODE         InterruptSynchronizationMode;
  MEMORY_REGION                          DumpRegion;
  ULONG                                  RequestedDumpBufferSize;
  BOOLEAN                                VirtualDevice;
  UCHAR                                  DumpMode;
  UCHAR                                  DmaAddressWidth;
  ULONG                                  ExtendedFlags1;
  ULONG                                  MaxNumberOfIO;
  ULONG                                  MaxIOsPerLun;
  ULONG                                  InitialLunQueueDepth;
  ULONG                                  BusResetHoldTime;
  ULONG                                  FeatureSupport;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

Члены

Length

Размер структуры PORT_CONFIGURATION_INFORMATION в байтах. Инициализированный драйвером Storport, этот элемент также служит версией структуры.

SystemIoBusNumber

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

AdapterInterfaceType

Интерфейс шины ввода-вывода. Storport инициализирует этот элемент значением, указанным драйвером мини-порта в структуре HW_INITIALIZATION_DATA . Драйверы мини-порта не должны изменять этот элемент.

BusInterruptLevel

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

BusInterruptVector

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

InterruptMode

Указывает, использует ли HBA прерывания LevelSensitive или Latched (иногда называемые "триггером ребра"). Storport инициализирует этот элемент соответствующим значением для шины и устройства, например LevelSensitive для PCIBus. Storport инициализирует этот элемент, и драйверы мини-порта не должны изменять его.

MaximumTransferLength

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

NumberOfPhysicalBreaks

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

DmaChannel

Канал DMA, используемый подчиненным адаптером HBA. По умолчанию значение этого элемента равно SP_UNINITIALIZED_VALUE. Storport инициализирует этот элемент, и драйверы мини-порта не должны изменять его.

DmaPort

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

DmaWidth

Ширина передачи DMA, если HBA использует DMA. По умолчанию значение этого элемента равно нулю. Storport инициализирует этот элемент, и драйверы мини-порта не должны изменять его.

DmaSpeed

Скорость передачи данных DMA для Eisa HBA. Storport инициализирует этот элемент, и драйверы мини-порта не должны изменять его.

AlignmentMask

Маска, указывающая ограничения выравнивания для буферов, необходимых адаптеру HBA для операций передачи. Некоторые примеры допустимых значений маски: 0 (выравнивание по байтам), 1 (выравнивание по словам), 3 (выравнивание по DWORD) и 7 (двойное выравнивание DWORD). Драйвер мини-порта должен установить эту маску, если HBA поддерживает точечную и сборную. В wdm.h определены следующие допустимые значения маски выравнивания:

Значение Значение
FILE_BYTE_ALIGNMENT (0x00000000) Данные выровнены по байтам (нет требований к выравниванию для устройства)
FILE_WORD_ALIGNMENT (0x00000001) Данные должны быть выровнены по 2-байтовой границе.
FILE_LONG_ALIGNMENT (0x00000003) Данные должны быть выровнены по 4-байтовой границе.
FILE_QUAD_ALIGNMENT (0x00000007) Данные должны быть выровнены по 8-байтовой границе.
FILE_OCTA_ALIGNMENT (0x0000000f) Данные должны быть выровнены по 16-байтовой границе.
FILE_32_BYTE_ALIGNMENT (0x0000001f) Данные должны быть выровнены по 32-байтовой границе.
FILE_64_BYTE_ALIGNMENT (0x0000003f) Данные должны быть выровнены по 64-байтовой границе.
FILE_128_BYTE_ALIGNMENT (0x0000007f) Данные должны быть выровнены по 128-байтовой границе.
FILE_256_BYTE_ALIGNMENT (0x000000ff) Данные должны быть выровнены по 256-байтовой границе.
FILE_512_BYTE_ALIGNMENT (0x000001ff) Данные должны быть выровнены по 512-байтовой границе.

NumberOfAccessRanges

Указывает количество элементов AccessRanges в массиве.

AccessRanges

Указатель на массив элементов ACCESS_RANGE типа. Storport выделяет память для диапазонов доступа и инициализирует этот элемент. Драйверы мини-порта не должны изменять этот элемент.

MiniportDumpData

Указатель на контекст дампа, используемый во время аварийного завершения или гибернации.

Reserved

Зарезервировано для использования системой (предварительно Windows 8).

NumberOfBuses

Количество автобусов, управляемых адаптером. По умолчанию значение этого элемента равно нулю. Этот элемент имеет максимальное значение SCSI_MAXIMUM_BUSES_PER_ADAPTER. Этот элемент доступен начиная с Windows 8.

InitiatorBusId[8]

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

ScatterGather

При значении TRUE HBA поддерживает точечную и сборную. Storport инициализирует этот элемент значением TRUE , так как его драйверы мини-порта должны поддерживать точечные и сборные. Драйверы miniport, работающие с Storport, не должны изменять это значение. (Примечание. В версиях Windows до Windows Server 2008 R2 и Windows 7 этот член имеет значение FALSE. В этом случае драйверы мини-порта должны задать для этого элемента значение TRUE. Если не установить для этого члена значение TRUE , устройство HBA не запустится.)

Master

Если задано значение TRUE, HBA является master автобусом. Storport инициализирует этот элемент значением TRUE , так как его драйверы мини-портов должны поддерживать DMA для шины. Драйверы miniport, работающие с Storport, не должны изменять это значение. (Примечание. В версиях Windows до Windows Server 2008 R2 и Windows 7 этот член имеет значение FALSE. В этом случае драйверы мини-порта должны задать для этого элемента значение TRUE. Если не установить для этого члена значение TRUE , устройство HBA не запустится.)

CachesData

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

AdapterScansDown

Storport игнорирует этот элемент.

AtdiskPrimaryClaimed

Storport не использует этот элемент, и его драйверы мини-портов не должны задавать его.

AtdiskSecondaryClaimed

Storport не использует этот элемент, и его драйверы мини-портов не должны задавать его.

Dma32BitAddresses

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

DemandMode

Указывает, следует ли программировать системный контроллер DMA для работы в режиме по требованию, а не для одноцикловых операций. Storport инициализирует этот элемент значением FALSE, так как он не поддерживает DMA в подчиненном режиме. Драйверы мини-портов не должны изменять это значение.

MapBuffers

Указывает, сопоставляет ли Storport адреса буфера данных SRB с системными виртуальными адресами. Драйвер мини-порта задает этому члену одно из следующих значений, чтобы управлять сопоставлением адресов буфера данных SRB.

Значение Значение
STOR_MAP_NO_BUFFERS Сопоставляет буфер только для SRB_FUNCTION_IO_CONTROL и SRB_FUNCTION_WMI.
STOR_MAP_ALL_BUFFERS Является устаревшей. Это значение имеет тот же эффект, что и STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Сопоставляет буфер для всех операций ввода-вывода, кроме запросов на чтение и запись.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Сопоставляет буфер для всех операций ввода-вывода, включая запросы на чтение и запись. Минипорты, поддерживающие загрузку, должны обрабатывать запросы на чтение или запись PAGE_SIZE длины. Эти запросы на чтение или запись всегда должны выполняться успешно. Storport может не сопоставить буфер при нехватке системной памяти. В этом случае элемент DataBuffer в SRB будет иметь значение NULL.

NeedPhysicalAddresses

Если задано значение TRUE, драйвер мини-порта должен преобразовывать виртуальные адреса в физические адреса в соответствии с требованиями адаптера безопасности. Storport инициализирует этот элемент значением TRUE, так как его драйверы минипорта должны поддерживать точечные и сборные списки. Мини-порт не должен изменять это значение.

TaggedQueuing

Если задано значение TRUE, адаптер HBA поддерживает постановку в очередь нескольких запросов с тегами SCSI. Storport инициализирует этот элемент значением TRUE , так как его драйверы мини-портов должны поддерживать добавление тегов в очередь. Драйверы мини-портов не должны изменять это значение.

AutoRequestSense

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

MultipleRequestPerLu

Если задано значение TRUE, HBA поддерживает несколько запросов на логическую единицу. Storport инициализирует этот элемент значением TRUE , так как его драйверы мини-порта должны поддерживать несколько запросов, выдаваемых в логическую единицу за раз. Драйверы мини-портов не должны изменять это значение.

ReceiveEvent

Storport не использует этот элемент, и его драйверы мини-портов не должны задавать его.

RealModeInitialized

Storport не использует этот элемент, и его драйверы мини-портов не должны задавать его.

BufferAccessScsiPortControlled

Storport не использует этот элемент, и его драйверы мини-портов не должны задавать его.

MaximumNumberOfTargets

Количество целевых периферийных устройств, которые может контролировать адаптер. По умолчанию значение этого элемента равно SCSI_MAXIMUM_TARGETS_PER_BUS. Драйвер мини-порта может сбросить этот элемент на меньшее значение, если HBA имеет более ограниченные возможности или большее значение, указывая, что HBA имеет расширенные возможности шины. Максимальное значение для этого элемента — 255.

SrbType

Тип SDB для отправки драйверу минипорта. Доступно начиная с Windows 8. Для этого параметра задано одно из следующих значений:

Значение Значение
SRB_TYPE_SCSI_REQUEST_BLOCK Драйвер мини-порта получает стандартные SРБ.
SRB_TYPE_STORAGE_REQUEST_BLOCK Драйвер мини-порта получает расширенные SРБ.

AddressType

Тип адреса, используемый между Storport и драйвером мини-порта. Доступно начиная с Windows 8. Для этого параметра можно задать следующее значение:

Значение Значение
STORAGE_ADDRESS_TYPE_BTL8 8-разрядная адресация шин, целевых и LUN (BTL).

ReservedUchars[2]

Зарезервировано для использования системой (предварительно Windows 8).

SlotNumber

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

BusInterruptLevel2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

BusInterruptVector2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

InterruptMode2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

DmaChannel2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

DmaPort2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

DmaWidth2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

DmaSpeed2

Зарезервировано для использования storport. Драйверы мини-порта не должны изменять этот элемент.

DeviceExtensionSize

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

Storport не соответствует модели SCSIPort (которая повторно инициализирует расширение устройства при остановке адаптера и, таким образом, последующие вызовы HwScsiFindAdapter получают обнуляемое расширение устройства). Скорее, Storport сбрасывает расширение устройства до нуля только при первом выделении, поэтому только первый вызов HwStorFindAdapter для данного адаптера получает обнуление расширения устройства. Последующие вызовы HwStorFindAdapter и других функций мини-порта получают расширение устройства при последнем изменении драйвером мини-порта. Это позволяет драйверу мини-порта поддерживать сведения о состоянии адаптера между остановками и перезапусками Plug and Play (PnP), что позволяет драйверу мини-порта оптимизировать процедуру инициализации.

SpecificLuExtensionSize

Размер в байтах, необходимый драйверу мини-порта для каждого логического хранилища,если таковой есть, для обработки передачи данных более 64 КБ. Storport инициализирует этот элемент значением в том же члене структуры HW_INITIALIZATION_DATA , отправленной в подпрограмме StorPortInitialize .

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

SrbExtensionSize

Размер в байтах, необходимый драйверу мини-порта для хранилища по запросу, если таковой есть, для обработки передачи данных размером более 64 КБ. Storport инициализирует этот элемент значением в том же члене структуры HW_INITIALIZATION_DATA , отправленной в подпрограмме StorPortInitialize .

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

Dma64BitAddresses

Если оборудование устройства поддерживает только 32-разрядные адреса, Dma64BitAddresses должно иметь значение 0. Если устройство поддерживает 64-разрядные адреса, это поле указывает, может ли HBA получать доступ к адресам размером более 4 ГБ.

Адаптеры Storport необходимы для поддержки DMA ширины шины. Таким образом, на 64-разрядном компьютере или компьютере с PAE Storport инициализирует Dma64BitAddresses для SCSI_DMA64_SYSTEM_SUPPORTED указывая, что адаптер может получить доступ ко полному диапазону адресов. Когда драйверы мини-порта обнаруживают это значение, они должны вернуть одно из значений из следующей таблицы в том же члене, чтобы указать драйверу порта, что драйвер мини-порта поддерживает 64-разрядную версию DMA. Если мини-порт не сможет сделать это, это может серьезно снизить производительность адаптера.

Значение Значение
SCSI_DMA64_MINIPORT_SUPPORTED Драйвер мини-порта поддерживает 64-разрядные физические адреса для передачи ввода-вывода.
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED Драйвер мини-порта поддерживает полную 64-разрядную адресацию. Это означает, что запросы ввода-вывода могут иметь физические > адреса 4 ГБ. Некэшированные расширения SenseInfo и Srb могут существовать свыше 4 ГБ. Выделение ограничивается выравниванием границ в 4 ГБ, чтобы предотвратить пересечение границы 4 ГБ.
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED Драйвер мини-порта поддерживает полную 64-разрядную адресацию. Это означает, что запросы ввода-вывода могут иметь физические > адреса 4 ГБ. Некэшированные расширения SenseInfo и Srb могут существовать свыше 4 ГБ. При выделении не требуется выравнивание границ.
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED Драйвер мини-порта поддерживает 64-разрядную адресацию в одном регионе объемом 4 ГБ. Это означает, что запросы ввода-вывода, некэшированные расширения, SenseInfo и расширение Srb могут иметь физические > адреса по 4 ГБ в одном регионе по 4 ГБ.

ResetTargetSupported

Является устаревшей. Не используйте этот элемент.

MaximumNumberOfLogicalUnits

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

WmiDataProvider

Если задано значение TRUE, драйвер мини-порта отвечает на запросы инструментария управления Windows (WMI). Storport инициализирует этот элемент значением TRUE , так как его драйверы мини-портов должны поддерживать WMI. Кроме того, предполагается, что драйверы мини-портов для адаптеров Fibre Channel будут поддерживать API HBA управления SAN через WMI, а для поддержки интерфейса управления RAID-интерфейсом требуются драйверы miniport для адаптеров RAID на основе узла.

Драйверы мини-портов не должны изменять это значение.

SynchronizationModel

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

Значение Значение
StorSynchronizeFullDuplex Мини-порт поддерживает полнодуплексный режим.
StorSynchronizeHalfDuplex Мини-порт поддерживает полудуплексный режим.

HwMSInterruptRoutine

Указатель на подпрограмму HwMSInterruptRoutine драйвера мини-порта, которая требуется для любого драйвера минипорта адаптера безопасности, который создает прерывания с сигналом сообщения (MSIs). Драйвер мини-порта задает этому члену значение NULL , если HBA не создает MSIs.

InterruptSynchronizationMode

Значение INTERRUPT_SYNCHRONIZATION_MODE , указывающее режим синхронизации прерываний. Режим синхронизации прерываний определяет, как драйвер порта синхронизирует прерывания с сигналом сообщения.

DumpRegion

Структура MEMORY_REGION , описывающая область физической непрерывной памяти, которую драйверы мини-портов могут использовать во время аварийного дампа или гибернации.

RequestedDumpBufferSize

Размер в байтах некэшированного расширения, который будет выделен для использования во время дампа или гибернации.

VirtualDevice

Если задано значение TRUE, за этим устройством отсутствует реальное оборудование (например, нет объекта DMA, прерывания, порты ввода-вывода). Storport ведет себя по-разному в некоторых случаях, когда он поддерживает "виртуальный" минипорт, а не минипорт, который управляет реальным оборудованием.

DumpMode

Указывает использование мини-порта в режиме дампа. Он может иметь одно из следующих значений.

Значение Значение
DUMP_MODE_CRASH Мини-порт в режиме дампа используется для аварийного завершения.
DUMP_MODE_HIBER Мини-порт в режиме дампа используется для гибернации.
DUMP_MODE_MARK_MEMORY Мини-порт в режиме дампа используется для маркировки требуемой памяти.
DUMP_MODE_RESUME Мини-порт в режиме дампа используется для возобновления из гибернации.

DmaAddressWidth

Ширина адреса DMA адаптера. Минипорты должны указывать STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED в FeatureSupport при указании этого значения. Указанное значение должно быть (0 <DmaAddressWidth<= 64). Это поле можно использовать, начиная с Windows 10 версии 2004.

ExtendedFlags1

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

MaxNumberOfIO

Максимальное количество невыполненных операций ввода-вывода, поддерживаемых HBA. По умолчанию для Storport установлено значение 1000. Если HBA не поддерживает 1000 невыполненных операций ввода-вывода, мини-порт должен изменить это значение на соответствующее меньшее значение.

Если адаптер может поддерживать более 1000 невыполненных операций ввода-вывода, мини-порт может увеличить этот элемент до любого значения, поддерживаемого оборудованием адаптера. Чтобы разрешить более 1000 невыполненных операций ввода-вывода, адаптер HBA должен поддерживать один из следующих 64-разрядных методов адресации DMA, заданных в поле Dma64BitAddresses :

  • SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
  • SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
  • SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

MaxIOsPerLun

Максимальное число запросов ввода-вывода, поддерживаемых в LUN. Storport установит значение по умолчанию 255. Если LUN не поддерживает 255 невыполненных запросов ввода-вывода, мини-порт должен настроить этот элемент на соответствующее меньшее значение. Этот элемент должен иметь значение <= MaxNumberOfIO. Для поддержки MaxIOsPerLun> 255 для поля SrbType необходимо задать значение SRB_TYPE_STORAGE_REQUEST_BLOCK. Доступно начиная с Windows 8.

InitialLunQueueDepth

Начальная глубина очереди ввода-вывода LUN. Storport задает значение по умолчанию 20 для физических мини-портов и 250 для виртуальных мини-портов. Этот элемент настраивает начальную глубину очереди для всех LUN на адаптере. Глубина очереди для отдельного LUN задается путем вызова StorPortSetDeviceQueueDepth. Обычно этому элементу присваивается то же значение, что и MaxIOsPerLun. Доступно начиная с Windows 8.

BusResetHoldTime

Время приостановки адаптера после обнаружения сброса (в микросекундах). Задайте для этого значения значение 0, если после сброса шины не требуется время ожидания. Доступно начиная с Windows 8.

FeatureSupport

Функции Storport, запрашиваемые для адаптера. Доступно начиная с Windows 8. Драйвер мини-порта может задать для этого элемента битовую маску любого из следующих значений:

Значение Значение
STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001 Драйвер мини-порта поддерживает данные телеметрии устройства хранения.
STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002 Мини-порт запрашивает получение команды STOP_UNIT во время завершения работы системы.
STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004 Драйверу мини-порта требуется выделить UncachedExtension из узла NUMA адаптера.
STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008 Драйвер мини-порта предпочитает использовать API ядра DMA версии 3 для адаптера.
STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010 Драйвер мини-порта поддерживает возможность прерывания невыполненных команд с помощью SRB_FUNCTION_ABORT_COMMAND.
STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020 Адаптер поддерживает более подробную информацию о пороговом значении температуры, чем определено в спецификации SCSI SPC4.
STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040 Драйвер мини-порта указал ширину адреса DMA в DmaAddressWidth для адаптера. Это значение можно использовать начиная с Windows 10 версии 2004.

Комментарии

Драйвер Storport выделяет и инициализирует эту структуру, предоставляет как можно больше сведений о конфигурации, относящихся к HBA, и передает структуру в подпрограмму HwStorFindAdapter драйвера мини-порта. Storport не поддерживает устройства, отличные от PnP, поэтому HwStorFindAdapter не выполняет поиск адаптера. Его основной функцией является инициализация PORT_CONFIGURATION_INFORMATION.

Требования

Требование Значение
Заголовок storport.h (включая Srb.h, Storport.h, Strmini.h)

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

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth