WdfRequestRetrieveUnsafeUserInputBuffer-Funktion (wdfrequest.h)
[Gilt nur für KMDF]
Die WdfRequestRetrieveUnsafeUserInputBuffer Methode ruft den Eingabepuffer 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 WdfRequestRetrieveUnsafeUserInputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *InputBuffer,
[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] InputBuffer
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
WdfRequestRetrieveUnsafeUserInputBuffer 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 WdfRequestRetrieveUnsafeUserInputBuffer Methode muss von einer EvtIoInCallerContext Rückruffunktion aufgerufen werden. Nach dem Aufrufen WdfRequestRetrieveUnsafeUserInputBuffermuss der Treiber WdfRequestProbeAndLockUserBufferForReadaufrufen.
Der Treiber kann WdfRequestRetrieveUnsafeUserInputBuffer aufrufen, wenn der E/A-Steuercode einer Anforderung IRP_MJ_WRITE 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 WdfRequestRetrieveUnsafeUserInputBufferfinden Sie unter Zugreifen auf Datenpuffer in Framework-Based Drivers.
Beispiele
Ein Codebeispiel, das WdfRequestRetrieveUnsafeUserInputBufferverwendet, 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), BufAfterReqCompletedWrite(kmdf) ), BufAfterReqCompletedWriteA(kmdf), DriverCreate(kmdf), InputBufferAPI(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |