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


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

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

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

Синтаксис

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

Параметры

[in] NdisMiniportHandle

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

[in] BlockId

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

[out] Buffer

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

[in] Length

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

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

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

Код возврата Описание
NDIS_STATUS_SUCCESS
Операция запроса успешно завершена.
NDIS_STATUS_FAILURE
Сбой операции запроса.

Комментарии

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

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

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

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

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

Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, драйвер мини-порта не должен вызывать NdisMReadConfigBlock. Вместо этого драйвер должен выполнять интерфейс с VBD через частный канал связи и запрашивать вызов readVfConfigBlock для 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 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= APC_LEVEL

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

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock