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


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

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

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

Синтаксис

ULONG NdisMGetVirtualFunctionBusData(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PVOID                  Buffer,
  [in]  ULONG                  Offset,
  [in]  ULONG                  Length
);

Параметры

[in] NdisMiniportHandle

Сетевой адаптер обрабатывает, который NDIS передается в параметр MiniportAdapterHandleMiniportInitializeEx.

[in] VFId

Идентификатор VF, из которого возвращаются данные из пространства конфигурации PCI.

[out] Buffer

Указатель на буфер, получающий данные, считываемые из пространства конфигурации PCI VF.

[in] Offset

Смещение в единицах байтов в пространстве конфигурации PCI VF, из которого считываются данные.

[in] Length

Длина (в единицах байтов) данных для чтения.

Примечание Размер буфера, на который ссылается буфера, должен быть не менее большим, чем значение параметра 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 через частный канал связи и запросить вызов VBD GetVirtualFunctionData. Эта функция предоставляется из интерфейса 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 (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL

См. также

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE