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


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

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

Примечание. NdisMWriteConfigBlock должен вызываться только драйвером мини-порта для VF сетевого адаптера.
 

Синтаксис

NDIS_STATUS NdisMWriteConfigBlock(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] ULONG       BlockId,
  [in] PVOID       Buffer,
  [in] ULONG       Length
);

Параметры

[in] NdisMiniportHandle

Сетевой адаптер обрабатывает данные NDIS, переданные параметру MiniportAdapterHandleобъекта MiniportInitializeEx.

[in] BlockId

Значение ULONG, указывающее идентификатор блока конфигурации для записи. Этот идентификатор является собственностью независимого поставщика оборудования (IHV) и используется только драйверами мини-портов для PF и VF на сетевом адаптере.

[in] Buffer

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

[in] Length

Число байтов, записываемых в блок конфигурации.

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

NdisMWriteConfigBlock может возвращать одно из следующих значений состояния.

Код возврата Описание
NDIS_STATUS_SUCCESS
Операция записи успешно завершена.
NDIS_STATUS_FAILURE
Не удалось выполнить операцию записи.

Комментарии

Драйвер мини-порта VF вызывает NdisMWriteConfigBlock , чтобы инициировать обратный запрос на запись данных конфигурации VF драйвером минипорта PF. После уведомления об этом запросе драйвер PF записывает данные в указанный блок конфигурации VF.

Блок конфигурации VF используется для обмена данными между PF и драйверами мини-портов VF. IHV может определить один или несколько блоков конфигурации VF для устройства. Каждый блок конфигурации VF имеет определенный IHV формат, длину и идентификатор блока.

Примечание Данные из каждого блока конфигурации VF используются только драйверами мини-портов PF и VF.
 
Дополнительные сведения о взаимодействии с серверным каналом в интерфейсе SR-IOV в рамках единого корневого интерфейса виртуализации ввода-вывода см. в разделе Sr-IOV PF/VF Backchannel Communication.

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

Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, драйвер мини-порта не должен вызывать NdisMWriteConfigBlock. Вместо этого драйвер должен выполнять взаимодействие с VBD через частный канал связи и запрашивать вызов WriteVfConfigBlock для VBD. Эта функция предоставляется из интерфейса GUID_VPCI_INTERFACE_STANDARD , поддерживаемого базовым драйвером виртуальной шины PCI (VPCI).

VBD, работающий в гостевой операционной системе дочернего раздела Hyper-V, может запрашивать интерфейс GUID_VPCI_INTERFACE_STANDARD , отправляя IRP_MN_QUERY_INTERFACE запрос к объекту физического устройства (PDO) на шине VPCI. Этот запрос должен быть выполнен из IRQL = PASSIVE_LEVEL. В этом запросе драйвер должен задать для параметра InterfaceType значение GUID_VPCI_INTERFACE_STANDARD.

Требования

Требование Значение
Минимальная версия клиента Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях.
Минимальная версия сервера Windows Server 2012
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= APC_LEVEL

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

GUID_VPCI_INTERFACE_STANDARD

WriteVfConfigBlock