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 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

Consulte también

SRIOV_PROXY_QUERY_LUID_OUTPUT