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


OID_SRIOV_WRITE_VF_CONFIG_SPACE

Избыточный драйвер выдает запрос на набор идентификатора объекта (OID) OID_SRIOV_WRITE_VF_CONFIG_SPACE для записи данных в пространство конфигурации PCI Express (PCIe) для указанной виртуальной функции PCIe (VF) на сетевом адаптере.

Избыточные драйверы выдают этот запрос набора OID к драйверу мини-порта для физической функции PCIe сетевого адаптера (PF). Этот запрос метода OID необходим для драйверов мини-портов PF, поддерживающих интерфейс sr-IOV.

Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на буфер, выделенный вызывающим объектом. Этот буфер имеет следующий формат:

  • Структура NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS , содержащая параметры для операции записи пространства конфигурации PCI виртуальногоF.

  • Дополнительное буферное пространство, содержащее данные для записи в пространство конфигурации PCI.

Комментарии

Драйвер мини-порта VF выполняется в гостевой операционной системе дочернего раздела Hyper-V. Из-за этого драйвер мини-порта VF не может напрямую получить доступ к аппаратным ресурсам, таким как пространство конфигурации PCI VF. Доступ к пространству конфигурации PCI для VF может получить только драйвер минипорта PF, который выполняется в операционной системе управления родительского раздела Hyper-V.

Драйвер, такой как стек виртуализации, выдает запрос набора OID OID_SRIOV_WRITE_VF_CONFIG_SPACE, когда драйвер мини-порта VF вызывает NdisMSetBusData для записи в пространство конфигурации PCI.

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

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

    Если ресурсы для указанного виртуальногоf не выделены, драйвер должен завершить запрос OID.

  • Драйвер минипорта PF вызывает NdisMSetVirtualFunctionBusData для записи в запрошенное пространство конфигурации PCI. Однако драйвер минипорта PF также может возвращать данные о пространстве конфигурации PCI для виртуальной машины, кэшированные драйвером из предыдущих операций чтения или записи в пространстве конфигурации PCI.

    Примечание Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, драйвер мини-порта PF не должен вызывать NdisMSetVirtualFunctionBusData. Вместо этого драйвер должен выполнять взаимодействие с VBD через частный канал связи и запрашивать вызов Метода SetVirtualFunctionData для VBD. Эта функция предоставляется из интерфейса GUID_VPCI_INTERFACE_STANDARD , поддерживаемого базовым драйвером виртуальной шины PCI (VPCI).

Если драйвер минипорта PF может успешно выполнить запрос OID, драйвер должен скопировать запрошенные данные пространства конфигурации PCI в буфер, на который ссылается элемент InformationBufferструктуры NDIS_OID_REQUEST . Драйвер копирует данные в буфер со смещением, заданным элементом BufferOffsetструктуры NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS .

Дополнительные сведения см. в разделе Настройка данных конфигурации PCI виртуальной функции.

Коды состояния возврата

Драйвер мини-порта PF возвращает один из следующих кодов состояния для запроса набора OID OID_SRIOV_WRITE_VF_CONFIG_SPACE.

Код состояния Описание

NDIS_STATUS_SUCCESS

Запрос OID успешно завершен.

NDIS_STATUS_NOT_SUPPORTED

Драйвер мини-порта PF либо не поддерживает интерфейс виртуализации однокорневого ввода-вывода (SR-IOV), либо не поддерживает его использование.

NDIS_STATUS_INVALID_PARAMETER

Один или несколько членов структуры NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS имеют недопустимые значения.

NDIS_STATUS_INVALID_LENGTH

Буфер сведений был слишком коротким. NDIS задает DATA. SET_INFORMATION. Элемент BytesNeeded в NDIS_OID_REQUEST структуру до минимального требуемого размера буфера.

NDIS_STATUS_FAILURE

Сбой запроса по другим причинам.

Требования

Версия

Поддерживается в NDIS 6.30 и более поздних версиях.

Заголовок

Ntddndis.h (включая Ndis.h)

См. также раздел


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS

NdisMSetBusData

NdisMSetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE

SetVirtualFunctionData