Compartir a través de


OID_SRIOV_WRITE_VF_CONFIG_BLOCK

Un controlador demasiado excesivo emite una solicitud de conjunto de identificador de objeto (OID) de OID_SRIOV_WRITE_VF_CONFIG_BLOCK para escribir datos en un bloque de configuración de función virtual de PCI Express (PCIe) (VF).

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

El informationBuffer miembro 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 para contener lo siguiente:

  • Estructura NDIS_SRIOV_WRITE_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 escriben en el bloque de configuración de VF.

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

Observaciones

Se usa un bloque de configuración 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 miniport. 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 conjunto de OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK, el controlador de sobreslización debe establecer los miembros de NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS estructura de la siguiente manera:

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

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

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

  • Establezca el miembro BufferOffset en el desplazamiento dentro del búfer (al que hace referencia miembro InformationBuffer) que contiene los datos que se van a escribir desde el bloque de configuración de VF especificado. Este desplazamiento se especifica en unidades de bytes desde el principio de la estructura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS.

Cuando controla la solicitud de conjunto de OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK, el controlador de miniporte PF debe seguir estas instrucciones:

  • El controlador de miniport pf debe comprobar que el VF, especificado por el VFId miembro de la estructura de NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, tiene recursos asignados previamente. El controlador de miniporte 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 OID.

  • El controlador de miniport pf debe comprobar que el blockId miembro de la estructura NDIS_SRIOV_WRITE_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 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 comunicación backcanal PF/VF.

Códigos de estado de retorno

El controlador de miniport devuelve uno de los siguientes códigos de estado para la solicitud de conjunto de OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK:

Código de estado Descripción

NDIS_STATUS_SUCCESS

La solicitud OID se completó correctamente.

NDIS_STATUS_NOT_SUPPORTED

El controlador miniport 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_BLOCK_PARAMETERS tienen valores no válidos.

NDIS_STATUS_INVALID_LENGTH

El búfer de información era demasiado corto. NDIS establece el DATA. SET_INFORMATION. BytesNeeded miembro 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

Compatible con NDIS 6.30 y versiones posteriores.

Encabezado

Ntddndis.h (include Ndis.h)

Consulte también


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE