структура ACCESS_RANGE (storport.h)
В ACCESS_RANGE описывается диапазон портов памяти или операций ввода-вывода, используемый адаптером HBA.
Синтаксис
typedef struct _ACCESS_RANGE {
STOR_PHYSICAL_ADDRESS RangeStart;
ULONG RangeLength;
BOOLEAN RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;
Члены
RangeStart
Содержит физический адрес, указывающий базовый адрес диапазона, используемого адаптером HBA, относительно шины. Значение этого элемента можно получить из одного из элементов AccessRanges в структуре PORT_CONFIGURATION_INFORMATION . Это адрес, который можно передать в StorPortGetDeviceBase.
RangeLength
Указывает размер, в байтах или количество портов в диапазоне. Драйвер мини-порта должен убедиться, что это значение совпадает с диапазоном, фактически декодированным адаптером. Например, если HBA использует семь регистров, но отвечает на восемь, этот член должен иметь значение 8.
RangeInMemory
Указывает, что диапазон находится в памяти при значении TRUE, а не в пространстве ввода-вывода. При значении FALSE диапазон находится в пространстве ввода-вывода.
Комментарии
Каждый ACCESS_RANGE является элементом массива AccessRanges в структуре PORT_CONFIGURATION_INFORMATION , передаваемой в подпрограмму HwStorFindAdapter драйвера мини-порта.
Storport выделяет память для диапазонов доступа и инициализирует элемент AccessRanges . Подпрограмма HwStorFindAdapter водителя мини-порта должна использовать только указанные адреса и никогда не должна пытаться найти другие HBA на том же автобусе, используя адреса собственной разработки. Попытка получить доступ к другим зависящим от шины портам или диапазонам памяти, когда драйвер порта предоставил сведения о диапазоне, особенно в системах с архитектурой x86, в которых некоторые устройства инициализируются в реальном режиме x86, может привести к сбою инициализации других устройств в шине или даже привести к сбою процесса загрузки системы.
Требования
Требование | Значение |
---|---|
Заголовок | storport.h (включая Srb.h, Storport.h, Strmini.h) |