функция обратного вызова SRIOV_QUERY_PROBED_BARS_2 (pcivirt.h)
Запрашивает данные, считывающие данные из указанных базовых регистров виртуальных функций (BAR) PCI Express SR-IOV ( VF), если значение -1 были записаны в них первым.
Синтаксис
SRIOV_QUERY_PROBED_BARS_2 SriovQueryProbedBars2;
NTSTATUS SriovQueryProbedBars2(
[in] PVOID Context,
[in] USHORT VfIndex,
[out] PULONG BaseRegisterValues
)
{...}
Параметры
[in] Context
Указатель на определяемый драйвером контекст.
[in] VfIndex
Отсчитываемый от нуля индекс VF, запрашиваемый.
[out] BaseRegisterValues
Указатель на массив переменных, ограничивающихся числом BAR на устройстве PCI.
Возвращаемое значение
Возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае верните соответствующий код ошибки NTSTATUS.
Замечания
Эта функция обратного вызова реализуется драйвером физической функции (PF). Он вызывается, когда система хочет считывать из регистров базовых адресов указанной виртуальной функции.
Драйвер PF регистрирует свою реализацию, задав элемент QueryProbedBars_2SRIOV_DEVICE_INTERFACE_STANDARD_2, настраивая структуру WDF_QUERY_INTERFACE_CONFIG и вызывая WdfDeviceAddQueryInterface.
Этот обратный вызов вызывается стеком виртуализации (не привилегированным), когда он хочет узнать базовые значения регистра адресов VF после записи регистров с помощью значения (-1). Этот процесс является обычным при настройке устройства PCI, и результат позволяет драйверу PCI знать количество адресного пространства, которое будет декодировано устройством после его включения. Если привилегированная виртуальная машина записывает в BAR VF, привилегированная виртуальная машина может перестать функционировать. Таким образом, эта подпрограмма требует необходимости записи в BAR.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 |
минимальный поддерживаемый сервер | Windows Server 2016 |
целевая платформа | Виндоус |
заголовка | pcivirt.h |
IRQL | PASSIVE_LEVEL |