Функция 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
Указывает базовый адрес диапазона, используемого адаптером шины, относительно шины. Подпрограмма HwStorFindAdapter получает значение для этого параметра из одного из элементов AccessRanges в PORT_CONFIGURATION_INFORMATION , если драйвер порта предоставляет сведения о конфигурации диапазона. В противном случае этот адрес может быть значением, возвращаемым StorPortGetBusData , или значением по умолчанию, предоставленным драйвером мини-порта. Не используйте базовый адрес, равный нулю, так как состояние успешного возврата может конфликтовать с состоянием ошибки (NULL).
[in] NumberOfBytes
Указывает размер диапазона в байтах, который должно охватывать сопоставление. Подпрограмма HwStorFindAdapter получает значение этого параметра из того же элемента AccessRanges , что и IoAddress , если драйвер порта предоставляет сведения о конфигурации диапазона. В противном случае это значение может быть возвращено storPortGetBusData или предоставленным драйвером мини-порта по умолчанию. В любом случае драйвер не должен обращаться к оборудованию за пределами возвращаемого сопоставленного диапазона.
[in] InIoSpace
Значение TRUE указывает, что диапазон для сопоставления находится в пространстве ввода-вывода, и драйвер мини-порта передает сопоставленные адреса в этом диапазоне в подпрограммы чтения и записи порта Storport для взаимодействия с адаптером безопасности. Подпрограмма HwStorFindAdapter получает значение этого параметра из того же элемента AccessRanges, что и IoAddress. Обратите внимание, что драйвер мини-порта должен инвертировать значение элемента InMemorySpace в элементе типа ACCESS_RANGE перед его передачей в StorPortGetDeviceBase в качестве аргумента InIoSpace . ЗНАЧЕНИЕ FALSE указывает, что диапазон, который необходимо сопоставить, находится в пространстве памяти.
Возвращаемое значение
Сопоставленный логический базовый адрес, соответствующий адресу относительно шины, указанному в параметре IoAddress .
Комментарии
Каждый драйвер мини-порта должен передавать сопоставленные адреса диапазона логического доступа подпрограммам чтения и записи порта Storport, а также регистрировать процедуры чтения и записи Storport при обмене данными со своими адаптерами HBA.
Эта подпрограмма поддерживает только те адреса, которые были назначены драйверу диспетчером системных Plug and Play (PnP).
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | storport.h (включая Storport.h) |
Библиотека | Storport.lib |