Compartir a través de


Función NdisMGetVirtualFunctionBusData (ndis.h)

Un controlador de minipuerto llama a la función NdisMGetVirtualFunctionBusData para leer datos del espacio de configuración PCI Express (PCIe) de una función virtual especificada (VF) en el adaptador de red.

NotaNdisMGetVirtualFunctionBusData solo debe llamarlo el controlador de miniporte para la función física PCIe (PF) del adaptador de red.
 

Sintaxis

ULONG NdisMGetVirtualFunctionBusData(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PVOID                  Buffer,
  [in]  ULONG                  Offset,
  [in]  ULONG                  Length
);

Parámetros

[in] NdisMiniportHandle

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

[in] VFId

Identificador del VF desde el que se devuelven los datos del espacio de configuración pci.

[out] Buffer

Puntero a un búfer que recibe los datos que se leen desde el espacio de configuración PCI de VF.

[in] Offset

Desplazamiento, en unidades de bytes, en el espacio de configuración PCI del VF desde el que se leen los datos.

[in] Length

Longitud, en unidades de bytes, de los datos que se van a leer.

Nota El tamaño del búfer al que hace referencia Buffer debe ser al menos tan grande como el valor del parámetro Length .
 

Valor devuelto

NdisMGetVirtualFunctionBusData devuelve el número de bytes leídos desde el espacio de configuración pci. Si se produce un error en la operación de lectura, NdisMGetVirtualFunctionBusData devuelve cero.

Comentarios

El controlador de miniporte PF normalmente llama a NdisMGetVirtualFunctionBusData cuando controla una solicitud de método OID de OID_SRIOV_READ_VF_CONFIG_SPACE.
Sin embargo, el controlador puede llamar a esta función en cualquier momento después de habilitar la virtualización en el adaptador de red a través de una llamada a NdisMEnableVirtualization.

Para obtener más información sobre cómo consultar el espacio de configuración pci de VF, consulte Consulta del espacio de configuración de PCI para una función virtual.

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 minipuerto no debe llamar a NdisMGetVirtualFunctionBusData. 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 GetVirtualFunctionData. Esta función se expone desde la interfaz GUID_PCI_VIRTUALIZATION_INTERFACE compatible con el controlador de bus PCI subyacente.

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

Requisitos

Requisito Value
Cliente mínimo compatible Ninguno compatible, compatible con NDIS 6.30 y versiones posteriores.
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL

Consulte también

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE