Функция NdisMEnableVirtualization (ndis.h)
Драйвер мини-порта вызывает функцию NdisMEnableVirtualization во время создания или удаления коммутатора сетевого адаптера на сетевом адаптере. Вызывая эту функцию, драйвер настраивает структуру расширенных возможностей однокорневой виртуализации ввода-вывода (SR-IOV) в пространстве конфигурации PCI Express (PCIe) для физической функции (PF) сетевого адаптера.
Синтаксис
NDIS_STATUS NdisMEnableVirtualization(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] USHORT NumVFs,
[in] BOOLEAN EnableVFMigration,
[in] BOOLEAN EnableMigrationInterrupt,
[in] BOOLEAN EnableVirtualization
);
Параметры
[in] NdisMiniportHandle
Сетевой адаптер обрабатывает данные NDIS, переданные параметру MiniportAdapterHandleобъекта MiniportInitializeEx.
[in] NumVFs
Значение USHORT, содержащее количество виртуальных функций (VF), которые должны быть включены для сетевого адаптера. NdisMEnableVirtualization задает для элемента NumVFs структуры расширенных возможностей SR-IOV значение параметра NumVFs .
[in] EnableVFMigration
Этот параметр зарезервирован для NDIS и должен иметь значение FALSE.
[in] EnableMigrationInterrupt
Этот параметр зарезервирован для NDIS и должен иметь значение FALSE.
[in] EnableVirtualization
Значение BOOLEAN, указывающее, должна ли быть включена виртуализация в пространстве конфигурации PCI сетевого адаптера. Если параметр EnableVirtualization имеет значение TRUE, NdisMEnableVirtualization задает бит VF Enable элемента управления SR-IOV. NdisMEnableVirtualization очищает этот бит, если EnableVirtualization имеет значение FALSE.
Возвращаемое значение
NdisMEnableVirtualization может возвращать одно из следующих значений состояния.
Код возврата | Описание |
---|---|
|
Операция виртуализации успешно завершена. |
|
Адаптер или система не поддерживают SR-IOV. |
|
Для параметра EnableVirtualization задано значение FALSE, а для параметра NumVFs — ненулевое значение. |
|
Операция виртуализации завершилась сбоем.
Примечание Функция NdisMEnableVirtualization завершается сбоем, если она вызывается для включения виртуализации, когда виртуализация уже включена. Прежде чем драйвер сможет повторно включить виртуализацию, драйвер должен отключить виртуализацию (вызвав функцию с параметром EnableVirtualization , установленным в значение FALSE).
|
Комментарии
Драйверы мини-порта PF вызывают NdisMEnableVirtualization , чтобы настроить поля расширенных возможностей SR-IOV в пространстве конфигурации PCI. Этот вызов используется для включения или отключения виртуализации в пространстве конфигурации, а также для указания количества виртуальных машин, которые должны быть предоставлены структуре PCIe сетевым адаптером.
Когда драйвер минипорта PF обрабатывает запрос метода OID OID_NIC_SWITCH_CREATE_SWITCH, драйвер вызывает NdisMEnableVirtualization , чтобы включить виртуализацию сетевого адаптера для коммутатора сетевого адаптера. Для этого драйвер вызывает NdisMEnableVirtualization со следующими параметрами.
Термин | Описание |
---|---|
NumVFs | Задайте для параметра число виртуальных машин, которые должны быть включены для коммутатора сетевого адаптера. |
EnableVirtualization | Задайте значение TRUE. |
Когда драйвер мини-порта PF обрабатывает запрос метода OID OID_NIC_SWITCH_DELETE_SWITCH, драйвер вызывает NdisMEnableVirtualization , чтобы отключить виртуализацию сетевого адаптера. Для этого драйвер вызывает NdisMEnableVirtualization со следующими параметрами:
Термин | Описание |
---|---|
NumVFs | Задайте нулевое значение. |
EnableVirtualization | Установите значение FALSE. |
Дополнительные сведения о создании коммутатора сетевого адаптера см. в разделе Создание коммутатора сетевого адаптера.
Дополнительные сведения об интерфейсе SR-IOV см. в статье Обзор виртуализации однокорневого ввода-вывода (SR-IOV).
Взаимодействие с драйвером виртуальной шины
Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, его драйвер мини-порта не должен вызывать NdisMEnableVirtualization. Вместо этого драйвер должен осуществлять взаимодействие с VBD через частный коммуникационный канал и запрашивать, чтобы VBD вызвал EnableVirtualization. Эта функция предоставляется интерфейсом 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 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | PASSIVE_LEVEL |
См. также раздел