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 de 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 a la condición de error adecuada como código NTSTATUS.
Observaciones
La pila de virtualización envía esta solicitud IOCTL al controlador pci Express SR-IOV función física (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 SR-IOV dispositivos 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 para 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 |
---|---|
encabezado de | pcivirt.h |
irQL | PASSIVE_LEVEL |