IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)
Esta solicitud proporciona el identificador único local del dispositivo SR_IOV que implementa la interfaz.
Código principal
Búfer de salida
Puntero a una estructura SRIOV_PROXY_QUERY_LUID_OUTPUT que se rellena con el identificador.
Longitud del búfer de salida
Tamaño de la estructura de SRIOV_PROXY_QUERY_LUID_OUTPUT
Bloque de estado
Irp->IoStatus.Status se establece en STATUS_SUCCESS si la solicitud se realiza correctamente. De lo contrario, estado de la condición de error adecuada como código NTSTATUS .
Comentarios
La pila de virtualización envía esta solicitud IOCTL al controlador de función física PCI Express SR-IOV (PF) que expone GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE.
Esta solicitud IOCTL se origina en el modo de usuario y la controla el controlador de función física (PF) para proporcionar el identificador único local del dispositivo físico. Esta solicitud solo es necesaria para los dispositivos SR-IOV que realizan la asignación directa.
Antes de enviar esta solicitud, la aplicación en modo de usuario debe obtener un identificador para el dispositivo PCI Express SR-IOV consultando GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE.
En este ejemplo, el controlador PF genera un identificador único llamando a ZwAllocateLocallyUniqueId y lo almacena en el contexto del dispositivo.
case IOCTL_SRIOV_PROXY_QUERY_LUID:
status = WdfRequestRetrieveOutputBuffer(Request,
sizeof(LUID),
&luid,
NULL);
if (!NT_SUCCESS(status))
{
break;
}
RtlCopyMemory(luid, &deviceContext->Luid, sizeof(LUID));
WdfRequestSetInformation(Request, sizeof(LUID));
status = STATUS_SUCCESS;
break;
Requisitos
Requisito | Valor |
---|---|
Header | pcivirt.h |
IRQL | PASSIVE_LEVEL |