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


Функция NdisMQueryProbedBars (ndis.h)

Минипорт-драйвер вызывает функцию NdisMQueryProbedBars для получения значений базовых регистров адресов (BAR) сетевого адаптера (PCIe). Эта функция возвращает значения BAR, сообщаемые сетевым адаптером после запроса, выполняемого драйвером шины PCI. Этот запрос определяет адресное пространство памяти или ввода-вывода, необходимое сетевому адаптеру.

ПримечаниеNdisMQueryProbedBars должен вызываться только драйвером мини-порта для физической функции PCIe сетевого адаптера (PF).
 

Синтаксис

NDIS_STATUS NdisMQueryProbedBars(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [out] PULONG      BaseRegisterValues
);

Параметры

[in] NdisMiniportHandle

Сетевой адаптер обрабатывает, который NDIS передается в параметр MiniportAdapterHandleMiniportInitializeEx.

[out] BaseRegisterValues

Указатель на массив значений ULONG. Массив содержит значение ULONG для каждого сетевого адаптера PCIe.

ПримечаниеNdisMQueryProbedBars возвращает максимум PCI_TYPE0_ADDRESSES значений в этом массиве.
 

Возвращаемое значение

NdisMQueryProbedBars может возвращать одно из следующих значений состояния.

Возвращаемый код Описание
NDIS_STATUS_SUCCESS
Операция запроса успешно завершена.
NDIS_STATUS_FAILURE
Сбой операции запроса.

Замечания

Драйвер шины PCI, работающий в операционной системе управления родительской секции Hyper-V, запрашивает требования к памяти или пространству ввода-вывода каждого базового регистра адресов PCI (BAR) сетевого адаптера. Драйвер шины PCI выполняет этот запрос при первом обнаружении адаптера на шине.

В этом запросе PCI BAR драйвер шины PCI определяет следующее:

  • Поддерживается ли сетевой адаптер интерфейсом PCI BAR.
  • Если поддерживается bar, сколько памяти или адресного пространства ввода-вывода требуется для bar.
Драйвер виртуальной шины PCI (VPCI) работает в гостевой операционной системе дочерней секции Hyper-V. Если виртуальная функция PCI Express (PCIe) подключена к дочерней секции, драйвер шины VPCI предоставляет адаптер виртуальной сети для VF (сетевого адаптера VF). Прежде чем это сделать, драйвер шины VPCI должен выполнить запрос PCI BAR, чтобы определить требуемое пространство памяти или адресное пространство, необходимое сетевому адаптеру VF.

Так как доступ к пространству конфигурации PCI является привилегированной операцией, она может выполняться только компонентами, которые выполняются в операционной системе управления родительской секции Hyper-V. Когда драйвер шины VPCI запрашивает BAR PCI, NDIS выдает запрос запроса идентификатора объекта (OID) OID_SRIOV_PROBED_BARS драйверу мини-порта PF. Результаты, возвращаемые этим запросом OID, перенаправляются в драйвер шины VPCI, чтобы определить, сколько адресного пространства памяти потребуется сетевому адаптеру VF.

Во время обработки этого запроса OID драйвер может вызывать NdisMQueryProbedBars, чтобы получить значения, возвращаемые из запроса BAR, выполняемого драйвером PCI.

Дополнительные сведения о том, как запрашивать регистры PCI BAR для VF, см. в запросе базовых регистров адресов PCI для виртуальной функции.

Дополнительные сведения об интерфейсе SR-IOV см. в обзоре виртуализации одно корневых операций ввода-вывода (SR-IOV).

взаимодействие с водителем виртуальной шины

Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в рамках пакета драйвера SR-IOV , его минипорт-драйвер не должен вызывать NdisMQueryProbedBars. Вместо этого драйвер должен интерфейс с VBD через частный канал связи и запросить вызов VBD GetVirtualFunctionProbedBars. Эта функция предоставляется из интерфейса GUID_PCI_VIRTUALIZATION_INTERFACE, поддерживаемого базовым драйвером шины PCI.

VBD, работающий в операционной системе управления Hyper-V родительского раздела, может запрашивать интерфейс GUID_PCI_VIRTUALIZATION_INTERFACE путем выдачи запроса IRP_MN_QUERY_INTERFACE объекту физического устройства (PDO) на шине PCI. Этот запрос должен быть выполнен из IRQL = PASSIVE_LEVEL. В этом запросе драйвер должен задать для параметра InterfaceType значение GUID_PCI_VIRTUALIZATION_INTERFACE.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.30 и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL PASSIVE_LEVEL

См. также

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionProbedBars

OID_SRIOV_PROBED_BARS