OID_SRIOV_WRITE_VF_CONFIG_BLOCK
Un controlador de exceso 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).
El exceso de controladores emite esta solicitud de conjunto 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_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 los datos que se van a escribir en el bloque de configuración de VF especificado.
Observaciones
Un bloque de configuración de VF se usa 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 definidos 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 el 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 directrices:
El controlador de miniporte PF debe comprobar que el VF, especificado por el miembro VFId de la estructura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS , tiene recursos que se han asignado 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 la VF especificada, el controlador debe producir un error en la solicitud OID.
El controlador de miniporte PF debe comprobar que el miembro BlockId 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 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 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 de miniporte 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 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) |