IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)
Diese Anforderung stellt den lokalen eindeutigen Bezeichner des SR_IOV Geräts bereit, das die Schnittstelle implementiert.
Hauptcode
Ausgabepuffer
Ein Zeiger auf eine SRIOV_PROXY_QUERY_LUID_OUTPUT Struktur, die mit dem Bezeichner gefüllt ist.
Länge des Ausgabepuffers
Die Größe der SRIOV_PROXY_QUERY_LUID_OUTPUT-Struktur
Statusblock
Irp->IoStatus.Status wird auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Andernfalls wird Status zur entsprechenden Fehlerbedingung als NTSTATUS-Code verwendet.
Hinweise
Diese IOCTL-Anforderung wird vom Virtualisierungsstapel an den PF-Treiber (PCI Express Express SR-IOV Physical Function) gesendet, der GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE verfügbar macht.
Diese IOCTL-Anforderung stammt aus dem Benutzermodus und wird vom PF-Treiber (Physical Function) verarbeitet, um den lokalen eindeutigen Bezeichner des physischen Geräts anzugeben. Diese Anforderung ist nur für SR-IOV-Geräte erforderlich, die eine direkte Zuweisung durchführen.
Vor dem Senden dieser Anforderung muss die Anwendung im Benutzermodus ein Handle für das PCI Express SR-IOV-Gerät abrufen, indem GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE abgefragt wird.
In diesem Beispiel generiert der PF-Treiber einen eindeutigen Bezeichner, indem er ZwAllocateLocallyUniqueId aufruft und im Gerätekontext speichert.
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;
Anforderungen
Anforderung | Wert |
---|---|
Header | pcivirt.h |
IRQL | PASSIVE_LEVEL |