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

Members

Length

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

SystemIoBusNumber

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

AdapterInterfaceType

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

BusInterruptLevel

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

BusInterruptVector

Относительный вектор шины, возвращаемый HBA. Storport не предполагает использования прерываний HBA, поэтому значение по умолчанию равно нулю. Этот член не имеет значения для драйверов, которые настроили член BusInterruptLevel для их HBAs. Это важно для HBAs на типах автобусов ввода-вывода, использующих векторы прерываний, такие как 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 для HBA Eisa . Storport инициализирует этот элемент и драйверы минипорта не должны изменять его.

AlignmentMask

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

Ценность Meaning
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]

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

ScatterGather

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

Master

Если значение TRUE, HBA является главной шиной. Storport инициализирует этот член в TRUE , так как его мини-порты должны поддерживать DMA для главного автобуса. Драйверы минипорта, работающие с 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.

Ценность Meaning
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, минипорт-драйвер должен переводить виртуальные адреса на физические адреса, как это требуется для HBA. 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

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

Ценность Meaning
SRB_TYPE_SCSI_REQUEST_BLOCK Минипорт-драйвер получает стандартные SRB.
SRB_TYPE_STORAGE_REQUEST_BLOCK Минипорт-драйвер получает расширенные SRB.

AddressType

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

Ценность Meaning
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 и другие функции минипорта получают расширение устройства, как последнее изменение драйвером мини-порта. Это позволяет минипорт-драйверу поддерживать знания о состоянии адаптера между подключаемым модулем и перезапуском (PnP), что позволяет мини-драйверу оптимизировать процедуру инициализации.

SpecificLuExtensionSize

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

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

SrbExtensionSize

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

Задайте этот член перед вызовом StorPortGetUncachedExtension , чтобы изменить размер хранилища на основе NumberOfPhysicalBreaks. Задайте для этого элемента значение нулю, если драйвер минипорта не поддерживает сведения о 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. Если минипорт не удается сделать это, это может значительно снизить производительность адаптера.

Ценность Meaning
SCSI_DMA64_MINIPORT_SUPPORTED Минипорт-драйвер поддерживает 64-разрядные физические адреса для передачи ввода-вывода.
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED Минипорт-драйвер поддерживает 64-разрядную адресацию. Это означает, что запросы ввода-вывода могут иметь физические > адреса 4 ГБ. Некшированные расширения, SenseInfo и Srb Extension могут существовать выше 4 ГБ. Выделение ограничивается выравниванием границ 4 ГБ, чтобы предотвратить пересечение границы 4 ГБ.
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED Минипорт-драйвер поддерживает 64-разрядную адресацию. Это означает, что запросы ввода-вывода могут иметь физические > адреса 4 ГБ. Некшированные расширения, SenseInfo и Srb Extension могут существовать выше 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. Кроме того, для поддержки ИНТЕРФЕЙСА управления RAID-интерфейсом требуются мини-драйверы для адаптеров fibre channel для API HBA управления SAN через WMI, а мини-порты для адаптеров RAID на основе узлов.

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

SynchronizationModel

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

Ценность Meaning
StorSynchronizeFullDuplex Минипорт поддерживает полно дуплексный режим.
StorSynchronizeHalfDuplex Минипорт поддерживает полудуплексный режим.

HwMSInterruptRoutine

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

InterruptSynchronizationMode

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

DumpRegion

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

RequestedDumpBufferSize

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

VirtualDevice

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

DumpMode

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

Ценность Meaning
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. Значение по умолчанию — 1000 по Storport. Если HBA не поддерживает 1000 невыполненных операций ввода-вывода, минипорт должен настроить это на соответствующее меньшее значение.

Если HBA может поддерживать более 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. Минипорт-драйвер может задать для этого элемента побитовую маску любого из следующих значений:

Ценность Meaning
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.
STOR_ADAPTER_FEATURE_UNIQUE_QUEUEING_TAG 0x00000080 Минипорт-драйвер поддерживает уникальные теги очередей для операций ввода-вывода. Это значение было добавлено в Windows 11 версии 24H2.

Замечания

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

Требования

Требование Ценность
Header storport.h (include Srb.h, Storport.h, Strmini.h)

См. также

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth