Функция NdisMQueryProbedBars (ndis.h)
Минипорт-драйвер вызывает функцию NdisMQueryProbedBars для получения значений базовых регистров адресов (BAR) сетевого адаптера (PCIe). Эта функция возвращает значения BAR, сообщаемые сетевым адаптером после запроса, выполняемого драйвером шины PCI. Этот запрос определяет адресное пространство памяти или ввода-вывода, необходимое сетевому адаптеру.
Синтаксис
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
Параметры
[in] NdisMiniportHandle
Сетевой адаптер обрабатывает, который NDIS передается в параметр MiniportAdapterHandleMiniportInitializeEx.
[out] BaseRegisterValues
Указатель на массив значений ULONG. Массив содержит значение ULONG для каждого сетевого адаптера PCIe.
Возвращаемое значение
NdisMQueryProbedBars может возвращать одно из следующих значений состояния.
Возвращаемый код | Описание |
---|---|
|
Операция запроса успешно завершена. |
|
Сбой операции запроса. |
Замечания
Драйвер шины PCI, работающий в операционной системе управления родительской секции Hyper-V, запрашивает требования к памяти или пространству ввода-вывода каждого базового регистра адресов PCI (BAR) сетевого адаптера. Драйвер шины PCI выполняет этот запрос при первом обнаружении адаптера на шине.
В этом запросе PCI BAR драйвер шины PCI определяет следующее:
- Поддерживается ли сетевой адаптер интерфейсом PCI BAR.
- Если поддерживается bar, сколько памяти или адресного пространства ввода-вывода требуется для bar.
Так как доступ к пространству конфигурации 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 |
См. также