Сброс виртуальной функции
Избыточный драйвер выдает запрос на набор идентификатора объекта (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 на том же сетевом адаптере.