структура 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, передаваемой в подпрограмму драйвера минипорта HwStorFindAdapt er.
Storport выделяет память для диапазонов доступа и инициализирует элемент AccessRanges. HwStorFindAdapter драйвера минипорта должны использовать только указанные адреса и никогда не пытаться найти другие HBAs на той же шине, используя адреса собственной разработки. Попытка получить доступ к другим диапазонам портов или памяти, когда драйвер порта предоставил сведения о диапазоне, особенно в системах только x86, в которых некоторые устройства инициализированы в режиме реального времени x86, могут привести к сбою инициализации других устройств на шине или даже привести к сбою процесса загрузки системы.
Требования
Требование | Ценность |
---|---|
заголовка | storport.h (include Srb.h, Storport.h, Strmini.h) |