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


Сброс виртуальной функции

Избыточный драйвер выдает запрос на набор идентификатора объекта (OID) OID_SRIOV_RESET_VF для сброса указанной виртуальной функции (VF) PCI Express (PCIe). VF — это аппаратный компонент сетевого адаптера, поддерживающий виртуализацию ввода-вывода с одним корнем. Избыточные драйверы выдают этот запрос набора OID к драйверу miniport физической функции PCI Express (PCIe).

Например, стек виртуализации выполняется в операционной системе управления родительского раздела Hyper-V. Прежде чем стек отсоединит виртуальную машину от дочернего раздела Hyper-V, он запрашивает сброс на уровне функций (FLR) в VF. Так как FLR является привилегированной операцией, ее может выполнять только драйвер мини-порта PF, который также выполняется в операционной системе управления. Чтобы запросить FLR указанного VF, стек виртуализации отправляет OID_SRIOV_RESET_VFзапрос драйверу мини-порта PF.

Перед выполнением этого запроса на набор OID драйвер должен инициализировать структуру NDIS_SRIOV_RESET_VF_PARAMETERS . Драйвер должен задать для элемента VFId идентификатор VF, который требуется сбросить.

При обработке этого запроса OID драйвер мини-порта PF должен следовать следующим рекомендациям:

  • Драйвер мини-порта PF должен убедиться, что VF, указанный членом VFIdструктуры NDIS_SRIOV_RESET_VF_PARAMETERS , содержит ресурсы, которые были ранее выделены. Драйвер мини-порта PF выделяет ресурсы для VF во время запроса метода OID OID_NIC_SWITCH_ALLOCATE_VF. Если ресурсы для указанного виртуальногоf не выделены, драйвер должен завершить запрос OID.

  • Операция сброса должна влиять только на указанный VF. Операция не должна влиять на другие виртуальные машины или PF на том же сетевом адаптере.