SRIOV_GET_VENDOR_AND_DEVICE_IDS función de devolución de llamada (pcivirt.h)
Proporciona el proveedor y el identificador de dispositivo para una función virtual PCI Express SR-IOV (VF) que se va a usar para generar un identificador de Plug and Play más genérico para el VF. Estos identificadores no se pueden leer directamente desde el espacio de configuración de VF.
Sintaxis
SRIOV_GET_VENDOR_AND_DEVICE_IDS SriovGetVendorAndDeviceIds;
void SriovGetVendorAndDeviceIds(
[in] PVOID Context,
[in] USHORT VfIndex,
[out] PUSHORT VendorId,
[out] PUSHORT DeviceId
)
{...}
Parámetros
[in] Context
Puntero a un contexto definido por el controlador.
[in] VfIndex
Índice de base cero del VF al que se aplica esta operación de escritura.
[out] VendorId
Puntero a una variable de USHORT que se rellena con el identificador de proveedor del VF.
[out] DeviceId
Puntero a una variable de USHORT que se rellena con el identificador de dispositivo del VF.
Valor devuelto
None
Observaciones
Esta función de devolución de llamada se implementa mediante el controlador de función física (PF). Se invoca cuando el sistema quiere recuperar los identificadores de proveedor y dispositivo del VF especificado.
La especificación PCI Express SR-IOV requiere que todas las máquinas virtuales tengan los mismos identificadores de proveedor y dispositivo. Este es un requisito de hardware compatible. Sin embargo, es posible aprovisionar máquinas virtuales de forma que sus funcionalidades se diferencian entre sí y a menudo resulta útil cargar controladores diferentes en hardware diferente. Por lo tanto, Windows permite que el controlador PF proporcione identificadores de dispositivo y proveedor independientes (con diferentes códigos de clase, a través de las interfaces de espacio de configuración), de modo que cada VF pueda aparecer con los identificadores de Plug and Play más adecuados para su uso.
El controlador PF registra su implementación estableciendo el miembro GetVendorAndDevice del SRIOV_DEVICE_INTERFACE_STANDARD, configurando una estructura de WDF_QUERY_INTERFACE_CONFIG y llamando a WdfDeviceAddQueryInterface.
Esta es una implementación de ejemplo de esta función de devolución de llamada.
Virtualization_GetVendorAndDevice (
_In_ PVOID Context,
_In_ USHORT VfIndex,
_Out_ PUSHORT VendorId,
_Out_ PUSHORT DeviceId
)
{
PDEVICE_CONTEXT deviceContext;
UNREFERENCED_PARAMETER(VfIndex);
PAGED_CODE();
deviceContext = (PDEVICE_CONTEXT)Context;
*VendorId = deviceContext->VendorId;
*DeviceId = deviceContext->DeviceId;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Servidor mínimo compatible | Windows Server 2016 |
Plataforma de destino | Windows |
Encabezado | pcivirt.h |
IRQL | PASSIVE_LEVEL |