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


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

См. также

StorPortFreeDeviceBase