Función NdisMReadConfigBlock (ndis.h)

Un controlador de minipuerto para una función virtual de PCI Express (PCIe) llama a la función NdisMReadConfigBlock para leer datos de un bloque de configuración de VF. Las operaciones de lectura de un bloque de configuración de VF se controlan mediante el controlador miniporte de la función física PCIe (PF) del adaptador de red.

Nota El controlador de miniporte VF solo debe llamar a NdisMReadConfigBlock.
 

Sintaxis

NDIS_STATUS NdisMReadConfigBlock(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [in]  ULONG       BlockId,
  [out] PVOID       Buffer,
  [in]  ULONG       Length
);

Parámetros

[in] NdisMiniportHandle

Identificador de adaptador de red que NDIS pasó al parámetro MiniportAdapterHandle de MiniportInitializeEx.

[in] BlockId

Valor ULONG que especifica el identificador del bloque de configuración de VF que se va a leer. Este identificador es propietario del proveedor de hardware independiente (IHV) y solo lo usan los controladores de miniporte PF y VF.

[out] Buffer

Puntero a un búfer asignado por el autor de la llamada que contendrá los datos de configuración solicitados.

[in] Length

Número de bytes que se van a leer del bloque de configuración de VF.

Valor devuelto

NdisMReadConfigBlock puede devolver uno de los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
La operación de consulta se completó correctamente.
NDIS_STATUS_FAILURE
Error en la operación de consulta.

Comentarios

El controlador de minipuerto VF llama a NdisMReadConfigBlock para iniciar una solicitud de lectura backchannel de los datos de configuración de VF por el controlador de minipuerto PF. Una vez notificado esta solicitud, el controlador PF devuelve los datos del bloque de configuración de VF especificado.

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 el dispositivo. 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.
 
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.

Para obtener más información sobre la interfaz SR-IOV, vea Información general sobre la virtualización de E/S raíz única (SR-IOV).

Interacción con un controlador de bus virtual

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 miniporte no debe llamar a NdisMReadConfigBlock. 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 ReadVfConfigBlock. Esta función se expone desde la interfaz de GUID_VPCI_INTERFACE_STANDARD compatible con el controlador de bus pci virtual (VPCI) subyacente.

El VBD que se ejecuta en el sistema operativo invitado de una partición secundaria de Hyper-V puede consultar la interfaz GUID_VPCI_INTERFACE_STANDARD mediante la emisión de una solicitud de IRP_MN_QUERY_INTERFACE a su objeto de dispositivo físico (PDO) en el bus VPCI. Esta solicitud se debe realizar desde IRQL = PASSIVE_LEVEL. En esta solicitud, el controlador debe establecer el parámetro InterfaceType en GUID_VPCI_INTERFACE_STANDARD.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.30 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= APC_LEVEL

Consulte también

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock