Condividi tramite


IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)

Questa richiesta fornisce l'identificatore univoco locale del dispositivo SR_IOV che implementa l'interfaccia.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di output

Puntatore a una struttura SRIOV_PROXY_QUERY_LUID_OUTPUT riempita con l'identificatore.

Lunghezza del buffer di output

Dimensioni della struttura SRIOV_PROXY_QUERY_LUID_OUTPUT

Blocco dello stato

Irp->IoStatus.Status è impostato su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, stato alla condizione di errore appropriata come codice NTSTATUS .

Commenti

Questa richiesta IOCTL viene inviata dallo stack di virtualizzazione al driver PCI Express SR-IOV Physical Function (PF) che espone GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE.

Questa richiesta IOCTL ha origine nella modalità utente e viene gestita dal driver della funzione fisica (PF) per fornire l'identificatore univoco locale del dispositivo fisico. Questa richiesta è necessaria solo per i dispositivi SR-IOV che eseguono l'assegnazione diretta.

Prima di inviare questa richiesta, l'applicazione in modalità utente deve ottenere un handle per il dispositivo PCI Express SR-IOV eseguendo una query per GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE.

In questo esempio, il driver PF genera un identificatore univoco chiamando ZwAllocateLocallyUniqueId e lo archivia nel contesto 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;

Requisiti

Requisito Valore
Intestazione pcivirt.h
IRQL PASSIVE_LEVEL

Vedi anche

SRIOV_PROXY_QUERY_LUID_OUTPUT