структура 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, так как его драйверы miniport должны поддерживать 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 | Драйвер мини-порта получает стандартные SSPB-файлы. |
SRB_TYPE_STORAGE_REQUEST_BLOCK | Драйвер мини-порта получает расширенные SSPB-файлы. |
AddressType
Тип адреса, используемый между Storport и драйвером мини-порта. Доступно начиная с Windows 8. Для этого параметра можно задать следующее значение:
Значение | Значение |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | 8-разрядная адресация в шине, целевом объекте и 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, определяемых драйвером. Драйвер порта для конкретной операционной системы инициализирует каждое расширение устройства один раз при первом выделении расширения и заполняет его нулями. При каждом вызове драйвера мини-порта он передает указатель на расширение устройства для конкретного адаптера шины. Указанный размер не включает в себя запрошенное драйвером мини-порта хранилище для каждой логической единицы. Размер хранилища на логическую единицу указывается с помощью поля SpecificLuExtensionSize , описанного далее в этом разделе.
Storport не соответствует модели SCSIPort (которая повторно инициализирует расширение устройства при остановке адаптера и, таким образом, последующие вызовы HwScsiFindAdapter получают обнуляемое расширение устройства). Скорее, Storport сбрасывает расширение устройства до нуля только при первом выделении, поэтому только первый вызов HwStorFindAdapter для заданного адаптера получает обнуляемое расширение устройства. Последующие вызовы HwStorFindAdapter и других функций мини-порта получают расширение устройства, измененное драйвером мини-порта. Это позволяет драйверу минипорта поддерживать сведения о состоянии адаптера между остановками и перезапусками Plug and Play (PnP), что, возможно, позволяет драйверу минипорта оптимизировать процедуру инициализации.
SpecificLuExtensionSize
Размер в байтах, необходимый драйверу мини-порта для его логического хранилища единиц измерения ,если таковой есть, для обработки передачи данных размером более 64 КБ. Storport инициализирует этот элемент значением в том же элементе структуры HW_INITIALIZATION_DATA , отправленной в подпрограмме StorPortInitialize .
Установите для этого элемента нулевое значение, если драйвер мини-порта не поддерживает сведения о единицах 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
Максимальное количество невыполненных операций ввода-вывода, поддерживаемых адаптером шины. По умолчанию для 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 V3 для адаптера. |
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 драйвера miniport. Storport не поддерживает устройства, отличные от PnP, поэтому HwStorFindAdapter не выполняет поиск адаптера. Его основная функция — инициализация PORT_CONFIGURATION_INFORMATION.
Требования
Требование | Значение |
---|---|
Заголовок | storport.h (включая Srb.h, Storport.h, Strmini.h) |