функция обратного вызова 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
Указатель на сведения о контексте для интерфейса. Вызывающий объект передает значение, передаваемое в качестве элемента контекста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 следующим образом:
Драйвер шины PCI записывает 0xFFFFFFFF в bar.
Драйвер шины PCI считывает bar, чтобы определить память или адресное пространство, которое требуется устройству. Значение нуля указывает, что устройство не поддерживает bar.
Подпрограмма getVirtualFunctionProbedBars предоставляется интерфейсом GUID_PCI_VIRTUALIZATION_INTERFACE.
Следующие заметки применяются к подпрограмме getVirtualFunctionProbedBars :
Интерфейс SR-IOV не требует, чтобы BAR VF PCIe соответствовали протоколу для определения размера блока памяти или адресного пространства ввода-вывода bar. Таким образом, драйвер виртуального PCI (VPCI), который работает в гостевой операционной системе, определяет размер, используя эквивалентный размер из BAR на физическом устройстве. Драйвер VPCI получает эти сведения путем вызова подпрограммы GetVirtualFunctionProbedBar s.
Драйвер VPCI требует размера адресного пространства памяти или ввода-вывода для каждой панели после запуска физического устройства. На этом этапе драйвер PCI не может выполнять запрос BAR на устройстве, не изменяя текущее значение bar. Поэтому, когда GetVirtualFunctionProbedBars вызывается драйвером VPCI, драйвер PCI возвращает сведения bar, полученные во время запроса BAR. Драйвер PCI выполнил этот запрос, когда устройство было впервые обнаружено на шине.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в Windows Server 2012 и более поздних версиях Windows. |
целевая платформа | Настольный |
заголовка | wdm.h (include Wdm.h) |
IRQL | PASSIVE_LEVEL |