Compartir a través de


OID_SRIOV_READ_VF_CONFIG_BLOCK

Un controlador excesivo emite una solicitud de método de identificador de objeto (OID) de OID_SRIOV_READ_VF_CONFIG_BLOCK para leer datos de un bloque de configuración de función virtual (VF) PCI Express (PCIe) especificado.

Los controladores excesivos emiten esta solicitud de método 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_READ_VF_CONFIG_BLOCK_PARAMETERS que contiene el desplazamiento, en unidades de bytes, desde el principio de esta estructura hasta una ubicación dentro del búfer que contiene los datos que se leen desde el bloque de configuración de VF.

  • Espacio de búfer adicional para que los datos se lean desde el bloque de configuración de VF especificado.

Observaciones

Se usa un bloque de configuración de VF para la comunicación backchannel entre los controladores de miniporte PF y VF. El IHV puede definir uno o varios bloques de configuración de VF para los controladores de minipuerto. Cada bloque de configuración de VF tiene un formato, longitud y identificador de bloque definido por IHV.

Nota Los datos de cada bloque de configuración de VF solo los usan los controladores de miniporte PF y VF.

Antes de que emite la solicitud de método OID de OID_SRIOV_READ_VF_CONFIG_BLOCK, el controlador de sobreaprovisionamiento debe establecer los miembros de NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS estructura de la siguiente manera:

  • Establezca el miembro VFId en el identificador del VF desde el que se va a leer la información.

  • Establezca el miembro BlockId en el identificador del bloque de configuración de VF del que se va a leer la información.

  • Establezca el miembro Length en el número de bytes que se van a leer del bloque de configuración.

  • Establezca el miembro BufferOffset en el desplazamiento dentro del búfer (al que hace referencia el miembro InformationBuffer ) que contendrá los datos leídos del bloque de configuración de VF especificado. Este desplazamiento se especifica en unidades de bytes desde el principio de la estructura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS .

Cuando controla la solicitud de método OID de OID_SRIOV_READ_VF_CONFIG_BLOCK, el controlador de minipuerto 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_READ_VF_CONFIG_BLOCK_PARAMETERS , tiene recursos asignados previamente. El controlador de minipuerto PF asigna recursos para un VF durante 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 miniporte PF debe comprobar que el miembro BlockId de la estructura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS especifica un bloque de configuración VF válido. Si no es así, el controlador debe producir un error en la solicitud de OID.

Para obtener más información sobre la comunicación backchannel dentro de la interfaz de virtualización de E/S raíz única (SR-IOV), consulte SR-IOV PF/VF Backchannel Communication.

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 método de OID_SRIOV_READ_VF_CONFIG_BLOCK.

Código de estado Descripción

NDIS_STATUS_SUCCESS

La solicitud de OID se completó correctamente.

NDIS_STATUS_NOT_SUPPORTED

El controlador de minipuerto 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_READ_VF_CONFIG_BLOCK_PARAMETERS tienen valores no válidos.

NDIS_STATUS_INVALID_LENGTH

El búfer de información era demasiado corto. El controlador de minipuerto debe establecer data . METHOD_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


NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE