Compartir a través de


OID_SRIOV_WRITE_VF_CONFIG_SPACE

Un controlador excesivo emite una solicitud de conjunto de identificador de objeto (OID) de OID_SRIOV_WRITE_VF_CONFIG_SPACE para escribir datos en el espacio de configuración de PCI Express (PCIe) para una función virtual PCIe especificada (VF) en el adaptador de red.

Los controladores excesivos emiten esta solicitud de establecimiento de OID al controlador de minipuerto para la función física PCIe (PF) del adaptador de red. Esta solicitud de método OID es necesaria para los controladores de minipuerto PF que admiten la interfaz de virtualización de E/S raíz única (SR-IOV).

El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a un búfer asignado por el autor de la llamada. Este búfer tiene el formato siguiente:

  • Estructura NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS que contiene los parámetros para una operación de escritura del espacio de configuración PCI de un VF.

  • Espacio de búfer adicional que contiene los datos que se van a escribir en el espacio de configuración de PCI.

Observaciones

El controlador de minipuerto de VF se ejecuta en el sistema operativo invitado de una partición secundaria de Hyper-V. Por este motivo, el controlador de minipuerto VF no puede acceder directamente a los recursos de hardware, como el espacio de configuración PCI de VF. Solo el controlador de minipuerto PF, que se ejecuta en el sistema operativo de administración de una partición primaria de Hyper-V, puede acceder al espacio de configuración pci de un VF.

El controlador de sobreaprovisionamiento, como la pila de virtualización, emite la solicitud de conjunto de OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE cuando el controlador de miniporte VF llama a NdisMSetBusData para escribir en su espacio de configuración PCI.

Cuando controla la solicitud de método OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE, el controlador de miniporte PF debe seguir estas instrucciones:

  • El controlador de minipuerto PF debe comprobar que el VF, especificado por el miembro VFId de la estructura NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS , tiene recursos asignados previamente. El controlador de minipuerto PF asigna recursos para un VF a través de una solicitud de método OID de OID_NIC_SWITCH_ALLOCATE_VF.

    Si no se han asignado recursos para el VF especificado, el controlador debe producir un error en la solicitud de OID.

  • El controlador de minipuerto PF llama a NdisMSetVirtualFunctionBusData para escribir en el espacio de configuración PCI solicitado. Sin embargo, el controlador de minipuerto PF también puede devolver datos de espacio de configuración PCI para el VF que el controlador ha almacenado en caché de las operaciones anteriores de lectura o escritura del espacio de configuración pci.

    Nota Si un proveedor de hardware independiente (IHV) proporciona un controlador de bus virtual (VBD) como parte de su paquete de controladores SR-IOV, su controlador de minipuerto PF no debe llamar a NdisMSetVirtualFunctionBusData. En su lugar, el controlador debe interactuar con VBD a través de un canal de comunicación privado y solicitar que el VBD llame a SetVirtualFunctionData. Esta función se expone desde la interfaz GUID_VPCI_INTERFACE_STANDARD compatible con el controlador de bus PCI virtual (VPCI) subyacente.

Si el controlador de miniporte PF puede completar correctamente la solicitud OID, el controlador debe copiar los datos de espacio de configuración PCI solicitados en el búfer al que hace referencia el miembro InformationBuffer de la estructura NDIS_OID_REQUEST . El controlador copia los datos en el búfer en el desplazamiento especificado por el miembro BufferOffset de la estructura NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS .

Para obtener más información, vea Establecer los datos de configuración de PCI de una función virtual.

Códigos de estado de devolución

El controlador de minipuerto PF devuelve uno de los siguientes códigos de estado para la solicitud de conjunto de OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE.

Código de estado Descripción

NDIS_STATUS_SUCCESS

La solicitud de OID se completó correctamente.

NDIS_STATUS_NOT_SUPPORTED

El controlador de minipuerto PF no admite la interfaz de virtualización de E/S raíz única (SR-IOV) o no está habilitada para usar la interfaz.

NDIS_STATUS_INVALID_PARAMETER

Uno o varios de los miembros de la estructura NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS tienen valores no válidos.

NDIS_STATUS_INVALID_LENGTH

El búfer de información era demasiado corto. NDIS establece data . SET_INFORMATION. Miembro BytesNeeded de la estructura NDIS_OID_REQUEST al tamaño mínimo del búfer necesario.

NDIS_STATUS_FAILURE

Error en la solicitud por otros motivos.

Requisitos

Versión

Se admite en NDIS 6.30 y versiones posteriores.

Encabezado

Ntddndis.h (incluye Ndis.h)

Consulte también


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