Функция NdisMInvalidateConfigBlock (ndis.h)
Драйвер мини-порта вызывает функцию NdisMInvalidateConfigBlock , чтобы уведомить NDIS о том, что данные для одного или нескольких блоков конфигурации виртуальной функции (VF) были изменены.
Синтаксис
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, который выполняется в гостевой операционной системе. Эта операционная система работает в дочернем разделе Hyper-V.
-
Драйвер PF, который работает в операционной системе управления.
Эта операционная система работает в родительском разделе Hyper-V.
- В гостевой операционной системе NDIS выдает запрос управления вводом-выводом IOCTL_VPCI_INVALIDATE_BLOCK запроса. После завершения этого IOCTL NDIS получает уведомление об изменении данных конфигурации VF.
-
В операционной системе управления выполняются следующие действия.
- Драйвер минипорта PF вызывает функцию NdisMInvalidateConfigBlock , чтобы уведомить NDIS о том, что данные конфигурации VF изменились и больше не действительны.
-
NDIS сообщает стеку виртуализации, который работает в операционной системе управления, об изменении данных блока конфигурации VF. Стек виртуализации кэширует данные параметра BlockMask .
Примечание Каждый раз, когда драйвер минипорта PF вызывает NdisMInvalidateConfigBlock, стек виртуализации возвращает данные параметра BlockMask с текущим значением в кэше.
- Стек виртуализации уведомляет драйвер виртуального PCI (VPCI), который работает в гостевой операционной системе, о недопустимости данных конфигурации VF. Стек виртуализации отправляет кэшированные данные параметров BlockMask драйверу VPCI.
-
В операционной системе на виртуальной машине выполняются следующие действия.
- Драйвер VPCI сохраняет кэшированные данные параметров BlockMask в элементе BlockMaskструктуры VPCI_INVALIDATE_BLOCK_OUTPUT, связанной с запросом IOCTL_VPCI_INVALIDATE_BLOCK .
-
Драйвер 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.
- Когда драйвер VF обрабатывает запрос OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK , он считывает данные из указанных блоков конфигурации VF.
Дополнительные сведения об интерфейсе SR-IOV см. в статье Обзор виртуализации однокорневого ввода-вывода (SR-IOV).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO