WdfRequestRetrieveUnsafeUserOutputBuffer-Funktion (wdfrequest.h)
[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)- |