Freigeben über


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
STATUS_INVALID_PARAMETER
Ein Eingabeparameter ist ungültig.
STATUS_INVALID_DEVICE_REQUEST
Dieser Wert wird zurückgegeben, wenn einer der folgenden Aktionen auftritt:
STATUS_BUFFER_TOO_SMALL
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)

Siehe auch

EvtIoInCallerContext

WdfRequestProbeAndLockUserBufferForRead

WdfRequestRetrieveUnsafeUserOutputBuffer