Функция NdisMGetVirtualFunctionBusData (ndis.h)
Драйвер мини-порта вызывает функцию NdisMGetVirtualFunctionBusData для чтения данных из пространства конфигурации PCI Express (PCIe) указанной виртуальной функции (VF) сетевого адаптера.
Синтаксис
ULONG NdisMGetVirtualFunctionBusData(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[out] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
Параметры
[in] NdisMiniportHandle
Дескриптор сетевого адаптера, переданный NDIS в параметр MiniportAdapterHandleобъекта MiniportInitializeEx.
[in] VFId
Идентификатор VF, из которого возвращаются данные из пространства конфигурации PCI.
[out] Buffer
Указатель на буфер, который получает данные, считываемые из пространства конфигурации PCI VF.
[in] Offset
Смещение в единицах байтов в пространстве конфигурации PCI VF, из которого считываются данные.
[in] Length
Длина считываемых данных в единицах в байтах.
Возвращаемое значение
NdisMGetVirtualFunctionBusData возвращает количество байтов, считываемых из пространства конфигурации PCI. Если операция чтения завершается сбоем, функция NdisMGetVirtualFunctionBusData возвращает ноль.
Комментарии
Драйвер минипорта PF обычно вызывает NdisMGetVirtualFunctionBusData при обработке запроса метода OID OID_SRIOV_READ_VF_CONFIG_SPACE.
Однако драйвер может вызвать эту функцию в любое время после включения виртуализации в сетевом адаптере с помощью вызова NdisMEnableVirtualization.
Дополнительные сведения о том, как запросить пространство конфигурации PCI VF, см. в разделе Запрос пространства конфигурации PCI для виртуальной функции.
Дополнительные сведения об интерфейсе SR-IOV см. в статье Обзор виртуализации однокорневого ввода-вывода (SR-IOV).
Взаимодействие с драйвером виртуальной шины
Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, драйвер мини-порта не должен вызывать NdisMGetVirtualFunctionBusData. Вместо этого драйвер должен выполнять взаимодействие с VBD через частный канал связи и запрашивать вызов GetVirtualFunctionData из VBD. Эта функция предоставляется из интерфейса 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 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
См. также раздел