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


Функция NdisMGetVirtualFunctionBusData (ndis.h)

Драйвер мини-порта вызывает функцию NdisMGetVirtualFunctionBusData для чтения данных из пространства конфигурации PCI Express (PCIe) указанной виртуальной функции (VF) сетевого адаптера.

Примечание. NdisMGetVirtualFunctionBusData должен вызываться только драйвером miniport для физической функции (PF) PCIe сетевого адаптера.
 

Синтаксис

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

Длина считываемых данных в единицах в байтах.

Примечание Размер буфера, на который ссылается Buffer, должен быть по крайней мере равно значению параметра 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

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

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE