Compartir a través de


GET_VIRTUAL_DEVICE_LOCATION función de devolución de llamada (wdm.h)

La rutina GetLocation devuelve la ubicación del dispositivo de una función virtual PCI Express (PCIe) (VF) en un bus PCI. Un dispositivo que admita la interfaz de virtualización de E/S raíz única (SR-IOV) puede exponer una o varias máquinas virtuales en el bus PCI.

Sintaxis

GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;

NTSTATUS GetVirtualDeviceLocation(
  [in, out] PVOID Context,
  [in]      USHORT VirtualFunction,
  [out]     PUINT16 SegmentNumber,
  [out]     PUINT8 BusNumber,
  [out]     PUINT8 FunctionNumber
)
{...}

Parámetros

[in, out] Context

Puntero a información de contexto específica de la interfaz. El autor de la llamada pasa el valor que se pasa como miembro Context de la estructura PCI_VIRTUALIZATION_INTERFACE para la interfaz.

[in] VirtualFunction

Valor de base cero que especifica el VF en el dispositivo para el que se devuelve la ubicación del dispositivo.

[out] SegmentNumber

Puntero a una variable proporcionada por el autor de la llamada en la que esta rutina devuelve un valor UINT16 para el número de segmento PCI actual. Este valor especifica el grupo de buses PCI en los que está conectado el dispositivo.

[out] BusNumber

Puntero a una variable proporcionada por el autor de la llamada en la que esta rutina devuelve un valor UINT8. Este valor especifica el número de bus PCI actual en el que está conectado el dispositivo.

[out] FunctionNumber

Puntero a una variable proporcionada por el autor de la llamada en la que esta rutina devuelve un valor UINT8. Este valor contiene el número de función para el VF especificado en el bus PCI.

Valor devuelto

La rutina GetLocation devuelve uno de los siguientes valores NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS La operación se ha completado correctamente.
STATUS_INVALID_PARAMETER El parámetro VirtualFunction es mayor que el valor del miembro TotalVFs de la estructura de funcionalidad extendida SR-IOV para el dispositivo.

Comentarios

La rutina GetLocation devuelve la ubicación actual del dispositivo de una VF en la jerarquía de PCIe. Esta información es necesaria para un sistema de virtualización que usa una unidad de administración de memoria de E/S (IOMMU) para enrutar el tráfico hacia o desde el dispositivo.

Tras una devolución correcta de una llamada a la rutina GetLocation , el parámetro FunctionNumber contiene un valor que representa el número de función del VF especificado en el bus PCI. Este valor se basa en la opción Interpretación alternativa de enrutamiento (ARI) de la especificación PCI Express 3.0. ARI trata un bus PCIe como un único dispositivo con un espacio de funciones de 8 bits, lo que permite 256 funciones en el bus.

La interfaz GUID_PCI_VIRTUALIZATION_INTERFACE proporciona la rutina GetLocation.

El número de bus PCI en el que se encuentra el VF puede cambiar. No se recomienda que los controladores almacenen la ubicación del dispositivo para un VF en almacenamiento no volátil, como el registro.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en Windows Server 2012 y versiones posteriores de Windows Server.
Plataforma de destino Escritorio
Encabezado wdm.h (incluya Wdm.h)
IRQL PASSIVE_LEVEL

Consulte también

PCI_VIRTUALIZATION_INTERFACE