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


функция обратного вызова GET_VIRTUAL_FUNCTION_PROBED_BARS (wdm.h)

Подпрограмма GetVirtualFunctionProbedBars возвращает значения базовых регистров адресов PCI Express (PCIe) устройства, которое поддерживает интерфейс SR-IOV.

GetVirtualFunctionProbedBars возвращает значения BAR, которые были переданы устройством после запроса, выполненного драйвером шины PCI. Этот запрос определяет объем памяти или адресное пространство ввода-вывода, необходимое устройству.

Синтаксис

GET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;

NTSTATUS GetVirtualFunctionProbedBars(
  [in, out] PVOID Context,
  [out]     PULONG BaseRegisterValues
)
{...}

Параметры

[in, out] Context

Указатель на сведения о контексте для конкретного интерфейса. Вызывающий объект передает значение, передаваемое в качестве элемента Contextструктуры PCI_VIRTUALIZATION_INTERFACE для интерфейса.

[out] BaseRegisterValues

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

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

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

Подпрограмма GetVirtualFunctionProbedBars возвращает одно из следующих значений NTSTATUS:

Код возврата Описание
STATUS_SUCCESS Операция выполнена успешно.
STATUS_INVALID_DEVICE_STATE Устройство не поддерживает интерфейс SR-IOV.

Комментарии

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

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

  • Поддерживается ли устройством bar.

  • Если bar поддерживается, сколько памяти или адресного пространства ввода-вывода требуется для bar.

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

  1. Водитель шины PCI записывает 0xFFFFFFFF в bar.

  2. Драйвер шины PCI считывает bar для определения памяти или адресного пространства, необходимых устройству. Значение, равное нулю, указывает, что устройство не поддерживает bar.

Подпрограмма GetVirtualFunctionProbedBars предоставляется интерфейсом GUID_PCI_VIRTUALIZATION_INTERFACE .

Следующие примечания относятся к подпрограмме GetVirtualFunctionProbedBars :

  • Интерфейс SR-IOV не требует, чтобы BAR PCIe VF соответствовали протоколу для определения размера блока памяти или адресного пространства ввода-вывода bar. Таким образом, виртуальный драйвер PCI (VPCI), работающий в гостевой операционной системе, определяет размер, используя эквивалентный размер из BAR на физическом устройстве. Драйвер VPCI получает эти сведения, вызывая подпрограмму GetVirtualFunctionProbedBars .

  • ДрайверУ VPCI требуется размер памяти или адресного пространства ввода-вывода для каждой панели bar после запуска физического устройства. На этом этапе драйвер PCI не может выполнить запрос BAR на устройстве, не изменив текущее значение bar. Таким образом, когда подпрограмма GetVirtualFunctionProbedBars вызывается драйвером VPCI, драйвер PCI возвращает сведения bar, полученные во время запроса BAR. Драйвер PCI выполнил этот запрос при первом обнаружении устройства в шине.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в Windows Server 2012 и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h)
IRQL PASSIVE_LEVEL

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

PCI_VIRTUALIZATION_INTERFACE