WdfRequestRetrieveUnsafeUserInputBuffer-Funktion (wdfrequest.h)
[Gilt nur für KMDF]
Die WdfRequestRetrieveUnsafeUserInputBuffer-Methode ruft den Eingabepuffer einer E/A-Anforderung ab, wenn die Technik der Anforderung für den Zugriff auf Datenpuffer weder gepuffert noch direkte E/A-Vorgänge ist.
Syntax
NTSTATUS WdfRequestRetrieveUnsafeUserInputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *InputBuffer,
[out, optional] size_t *Length
);
Parameter
[in] Request
Ein Handle für ein Frameworkanforderungsobjekt.
[in] MinimumRequiredLength
Die minimale Puffergröße in Bytes, die der Treiber zum Verarbeiten 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 einen Speicherort, der die Größe des Puffers in Bytes empfängt. Dieser Parameter ist optional und kann NULL sein.
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-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Die WdfRequestRetrieveUnsafeUserInputBuffer-Methode muss von einer EvtIoInCallerContext-Rückruffunktion aufgerufen werden. Nach dem Aufruf von WdfRequestRetrieveUnsafeUserInputBuffer muss der Treiber WdfRequestProbeAndLockUserBufferForRead aufrufen.
Der Treiber kann WdfRequestRetrieveUnsafeUserInputBuffer aufrufen, wenn der E/A-Steuerungscode einer Anforderung IRP_MJ_WRITE oder IRP_MJ_DEVICE_CONTROL ist.
Der Treiber kann auf den abgerufenen Puffer zugreifen, bis er die E/A-Anforderung abgeschlossen hat, die der Request-Parameter darstellt.
Weitere Informationen zu WdfRequestRetrieveUnsafeUserInputBuffer finden Sie unter Zugreifen auf Datenpuffer in Framework-Based-Treibern.
Beispiele
Ein Codebeispiel, das WdfRequestRetrieveUnsafeUserInputBuffer verwendet, finden Sie unter WdfRequestProbeAndLockUserBufferForRead.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfrequest.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionierung der Frameworkbibliothek.) |
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) |