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


Инициализация драйвера Минипорта VF

В этом разделе описываются рекомендации по написанию функции MiniportInitializeEx для минипорт-драйвера для виртуальной функции PCI Express (PCIe). VF предоставляется сетевым адаптером, поддерживающим виртуализацию одно корневых операций ввода-вывода (SR-IOV).

Примечание.

 Эти рекомендации применяются только к драйверам минипорта VF сетевого адаптера SR-IOV. Рекомендации по инициализации минипорта драйвера физической функции PCIe (PF) адаптера см. в разделе инициализация драйвера минипорта PF. 

Драйвер минипорта VF выполняет те же действия, что и любой драйвер минипорта NDIS при вызове функции MiniportInitializeEx. Дополнительные сведения об этих шагах см. в разделе "Инициализация минипорт-драйвера".

Помимо этих действий, драйвер минипорта VF должен выполнить следующие дополнительные действия, когда NDIS вызывает функцию MiniportInitializeEx драйвера:

  • Драйвер мини-порта VF вызывает функцию NdisGetHypervisorInfo , чтобы убедиться, что она выполняется в дочерней секции Hyper-V. Эта функция возвращает NDIS_HYPERVISOR_INFO структуру, которая определяет тип секции. Если тип секции сообщается как NdisHypervisorPartitionMsHvChild, минипорт драйвер выполняется в дочерней секции Hyper-V, подключенной к PF на адаптере.

    Примечание.

    Если тип секции сообщается как NdisHypervisorPartitionMsHvParent, драйвер минипорта выполняется в родительской секции Hyper-V, подключенной к PF на адаптере. В этом случае минипорт-драйвер не должен инициализироваться в качестве драйвера VF. Если это возможно, драйвер должен инициализировать как драйвер PF, как описано в последовательности инициализации для драйверов минипорта PF.

  • В отличие от драйвера минипорта PF, драйвер минипорта VF не должен быть установлен с стандартизованными ключевое слово SR-IOV и не должен пытаться прочитать эти ключевое слово. Дополнительные сведения об этих ключевое слово см. в стандартных ключевых словах INF для SR-IOV.

  • Драйвер минипорта VF сообщает возможности оборудования SR-IOV базового виртуального сетевого адаптера через структуру NDIS_SRIOV_CAPABILITIES , которая инициализирована следующим образом:

    1. Драйвер минипорта инициализирует элемент заголовка. Драйвер задает элемент type заголовка для NDIS_OBJECT_TYPE_DEFAULT.

      Начиная с версии NDIS 6.30, драйвер минипорта устанавливает для элемента "Редакция заголовка" значение NDIS_SRIOV_CAPABILITIES _REVISION_1, а элемент "Размер" — NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.

    2. Драйвер минипорта задает флаг NDIS_SRIOV_CAPS_PF_MINIPORT в члене ШриовCapabilities , чтобы сообщить о возможностях SR-IOV.

      Примечание.

      Драйвер минипорта VF должен задать флаг NDIS_SRIOV_CAPS_VF_MINIPORT и флаг NDIS_SRIOV_CAPS_SRIOV_SUPPORTED.

    Драйвер минипорта VF регистрирует возможности SR-IOV сетевого адаптера, выполнив следующие действия.

    1. Минипорт-драйвер инициализирует структуру NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

      Минипорт-драйвер задает члены HardwareSriovCapabilities и CurrentSriovCapabilities указателем на ранее инициализированную структуру NDIS_SRIOV_CAPABILITIES.

    2. Драйвер вызывает NdisMSetMiniportAttributes и задает параметр MiniportAttributes указателем на структуру NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

  • Драйвер мини-порта VF не должен объявлять возможности очереди виртуальных машин (VMQ). Однако драйвер может объявить поддержку других технологий NDIS, таких как управление питанием и масштабирование на стороне получения (RSS).

    Дополнительные сведения о RSS см. в статье "Масштабирование на стороне получения".