Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Gilt nur für KMDF]
Die WdfRequestRetrieveUnsafeUserOutputBuffer Methode ruft den Ausgabepuffer einer E/A-Anforderung ab, wenn die Methode der Anforderung für den Zugriff auf Datenpuffer weder gepuffert noch direkte E/A-ist.
Syntax
NTSTATUS WdfRequestRetrieveUnsafeUserOutputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *OutputBuffer,
[out, optional] size_t *Length
);
Parameter
[in] Request
Ein Handle zu einem Framework-Anforderungsobjekt.
[in] MinimumRequiredLength
Die minimale Puffergröße in Bytes, die der Treiber für die Verarbeitung der E/A-Anforderung benötigt.
[out] OutputBuffer
Ein Zeiger auf eine Position, die die Adresse des Puffers empfängt.
[out, optional] Length
Ein Zeiger auf eine Position, die die Größe des Puffers in Byte empfängt. Dieser Parameter ist optional und kann NULL-werden.
Rückgabewert
WdfRequestRetrieveUnsafeUserOutputBuffer gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Ein Eingabeparameter ist ungültig. |
|
Dieser Wert wird zurückgegeben, wenn einer der folgenden Aktionen auftritt:
|
|
Der parameter MinimumRequiredLength gibt eine Puffergröße an, die größer als die tatsächliche Größe des Puffers ist. |
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.
Bemerkungen
Die WdfRequestRetrieveUnsafeUserOutputBuffer Methode muss von einer EvtIoInCallerContext- Rückruffunktion aufgerufen werden. Nach dem Aufrufen WdfRequestRetrieveUnsafeUserOutputBuffermuss der Treiber WdfRequestProbeAndLockUserBufferForWriteaufrufen.
Der Treiber kann WdfRequestRetrieveUnsafeUserOutputBuffer aufrufen, wenn der E/A-Steuercode einer Anforderung IRP_MJ_READ oder IRP_MJ_DEVICE_CONTROList.
Der Treiber kann auf den abgerufenen Puffer zugreifen, bis er die E/A-Anforderung abgeschlossen, die der parameter Request darstellt.
Weitere Informationen zu WdfRequestRetrieveUnsafeUserOutputBufferfinden Sie unter Zugreifen auf Datenpuffer in Framework-Based Drivers.
Beispiele
Ein Codebeispiel, das WdfRequestRetrieveUnsafeUserOutputBufferverwendet, finden Sie unter WdfRequestProbeAndLockUserBufferForRead.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Minimale KMDF-Version | 1.0 |
Header- | wdfrequest.h (include Wdf.h) |
Library | Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.) |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | BufAfterReqCompletedIntIoctl(kmdf), BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctl(kmdf ), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedRead(kmdf), BufAfterReqCompletedReadA (kmdf), BufAfterReqCompletedWrite(kmdf), DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), OutputBufferAPI(kmdf)- |