Функция StorPortGetDeviceBase (storport.h)
Программа StorPortGetDeviceBase сопоставляет адрес ввода-вывода с адресным пространством системы.
Синтаксис
STORPORT_API PVOID StorPortGetDeviceBase(
[in] PVOID HwDeviceExtension,
[in] INTERFACE_TYPE BusType,
[in] ULONG SystemIoBusNumber,
[in] STOR_PHYSICAL_ADDRESS IoAddress,
[in] ULONG NumberOfBytes,
[in] BOOLEAN InIoSpace
);
Параметры
[in] HwDeviceExtension
Указатель на расширение аппаратного устройства. Это область хранения HBA, которую драйвер портов выделяет и инициализирует от имени мини-порта. Драйверы минипорта обычно хранят сведения, относящиеся к HBA, в этом расширении, например состояние HBA и сопоставленные диапазоны доступа для HBA. Эта область доступна драйверу мини-порта сразу после вызова драйвера мини-порта StorPortInitialize. Драйвер портов освобождает эту память при удалении устройства.
[in] BusType
Указывает тип интерфейса шины ввода-вывода, на которой подключенА HBA. Подпрограмма драйвера минипорта HwStorFindAdapter получает значение этого параметра из элемента AdapterInterfaceType входного PORT_CONFIGURATION_INFORMATION.
[in] SystemIoBusNumber
Указывает назначаемое системой число шин ввода-вывода, на котором подключенА HBA. Подпрограмма HwStorFindAdapter получает значение этого параметра из элемента SystemIoBusNumber входного PORT_CONFIGURATION_INFORMATION.
[in] IoAddress
Указывает относительный базовый адрес шины диапазона, используемого HBA. Подпрограмма HwStorFindAdapter получает значение для этого параметра из одного из элементов AccessRanges в PORT_CONFIGURATION_INFORMATION, если драйвер порта предоставляет сведения о конфигурации диапазона. В противном случае этот адрес может быть значением, возвращаемым storPortGetBusData или значением по умолчанию, предоставленным драйвером мини-порта. Избегайте использования базового адреса нуля, так как его состояние успешного возврата может конфликтуть с состоянием ошибки (NULL).
[in] NumberOfBytes
Указывает размер диапазона в байтах, который должен охватывать сопоставление. Подпрограмма HwStorFindAdapter получает значение этого параметра из того же элемента AccessRanges, что и IoAddress, если драйвер порта предоставляет сведения о конфигурации диапазона. В противном случае это значение можно вернуть с помощью StorPortGetBusData или мини-порта, предоставленного драйвером по умолчанию. В любом случае драйвер не должен обращаться к оборудованию за пределами возвращаемого диапазона.
[in] InIoSpace
ЗНАЧЕНИЕ TRUE указывает, что диапазон, который необходимо сопоставить, находится в пространстве ввода-вывода, а драйвер мини-порта передает сопоставленные адреса в этом диапазоне в порт Storport подпрограммы чтения и записи для взаимодействия с HBA. Подпрограмма HwStorFindAdapter получает значение этого параметра из того же элемента AccessRanges, что и IoAddress. Обратите внимание, что мини-драйвер должен инвертировать значение элемента InMemorySpace в элементе типа ACCESS_RANGE перед передачей StorPortGetDeviceBase в качестве аргумента InIoSpace. FALSE указывает, что диапазон, который необходимо сопоставить, находится в пространстве памяти.
Возвращаемое значение
Сопоставленный логический базовый адрес, соответствующий относительному адресу шины, указанному в параметре IoAddress.
Замечания
Каждый драйвер минипорта должен передавать сопоставленные адреса диапазона логического доступа к портам Storport подпрограмм чтения и записи и регистра Storport регистра операций чтения и записи при взаимодействии с его HBA.
Эта подпрограмма поддерживает только те адреса, которые были назначены драйверу диспетчером system Plug and Play (PnP).
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | storport.h (include Storport.h) |
библиотеки | Storport.lib |