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

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

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

Синтаксис

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

Параметры

[in] NdisMiniportHandle

Дескриптор сетевого адаптера, переданный NDIS в параметр MiniportAdapterHandleобъекта MiniportInitializeEx.

[in] VFId

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

[in] Buffer

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

[in] Offset

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

[in] Length

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

Возвращаемое значение

NdisMSetVirtualFunctionBusData возвращает количество байтов, записанных в пространство конфигурации PCI. Если операция записи завершается сбоем, функция NdisMSetVirtualFunctionBusData возвращает ноль.

Комментарии

Драйвер минипорта PF обычно вызывает NdisMSetVirtualFunctionBusData при обработке запроса метода OID OID_SRIOV_WRITE_VF_CONFIG_SPACE.
Однако драйвер может вызвать эту функцию в любое время после включения виртуализации в сетевом адаптере с помощью вызова NdisMEnableVirtualization.

Дополнительные сведения о обратном канале связи в интерфейсе SR-IOV (SR-IOV) см. в разделе Sr-IOV PF/VF Backchannel Communication.

Дополнительные сведения об интерфейсе SR-IOV см. в статье Обзор виртуализации однокорневого ввода-вывода (SR-IOV).

Взаимодействие с драйвером виртуальной шины

Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, его драйвер miniport не должен вызывать NdisMSetVirtualFunctionBusData. Вместо этого драйвер должен выполнять интерфейс с VBD через частный канал связи и запрашивать вызов SetVirtualFunctionData из 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

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_WRITE_VF_CONFIG_SPACE

SetVirtualFunctionData