Поделиться через


Функция 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

См. также раздел

StorPortFreeDeviceBase