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

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

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

Синтаксис

void NdisMInvalidateConfigBlock(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] ULONGLONG              BlockMask
);

Параметры

[in] NdisMiniportHandle

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

[in] VFId

Идентификатор VF, для которого возвращается расположение устройства.

[in] BlockMask

Значение ULONGLONG, указывающее битовую маску для первых 64 блоков конфигурации VF. Каждый бит в битовой маске соответствует блоку конфигурации VF. Если бит имеет значение one, данные, связанные с соответствующим блоком конфигурации VF, изменились.

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

None

Remarks

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

Примечание Данные из каждого блока конфигурации VF используются только драйверами PF и VF miniport.
 
Обмен данными конфигурации VF осуществляется между следующими драйверами:
  • Драйвер VF, который выполняется в гостевой операционной системе. Эта операционная система работает в дочернем разделе Hyper-V.
  • Драйвер PF, который работает в операционной системе управления.

    Эта операционная система работает в родительском разделе Hyper-V.

Чтобы обрабатывать уведомления о недопустимых данных конфигурации VF, драйверы NDIS и мини-порта выполняют следующие действия.
  1. В гостевой операционной системе NDIS выдает запрос управления вводом-выводом IOCTL_VPCI_INVALIDATE_BLOCK запроса. После завершения этого IOCTL NDIS получает уведомление об изменении данных конфигурации VF.
  2. В операционной системе управления выполняются следующие действия.
    1. Драйвер минипорта PF вызывает функцию NdisMInvalidateConfigBlock , чтобы уведомить NDIS о том, что данные конфигурации VF изменились и больше не действительны.
    2. NDIS сообщает стеку виртуализации, который работает в операционной системе управления, об изменении данных блока конфигурации VF. Стек виртуализации кэширует данные параметра BlockMask .
      Примечание Каждый раз, когда драйвер минипорта PF вызывает NdisMInvalidateConfigBlock, стек виртуализации возвращает данные параметра BlockMask с текущим значением в кэше.
       
    3. Стек виртуализации уведомляет драйвер виртуального PCI (VPCI), который работает в гостевой операционной системе, о недопустимости данных конфигурации VF. Стек виртуализации отправляет кэшированные данные параметров BlockMask драйверу VPCI.
  3. В операционной системе на виртуальной машине выполняются следующие действия.
    1. Драйвер VPCI сохраняет кэшированные данные параметров BlockMask в элементе BlockMaskструктуры VPCI_INVALIDATE_BLOCK_OUTPUT, связанной с запросом IOCTL_VPCI_INVALIDATE_BLOCK .
    2. Драйвер VPCI успешно завершает запрос IOCTL_VPCI_INVALIDATE_BLOCK . В этом случае NDIS отправляет запрос метода OID OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK драйверу мини-порта VF. Запрос NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO передается в запросе OID. Эта структура содержит кэшированные данные параметра BlockMask .

      NDIS также выдает другой запрос IOCTL_VPCI_INVALIDATE_BLOCK для обработки последовательных уведомлений об изменениях данных конфигурации VF.

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

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

Требования

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

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

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT