Compartir a través de


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

IRP_MJ_DEVICE_CONTROL

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

Consulte también

SRIOV_PROXY_QUERY_LUID_OUTPUT