Funzione WdfRequestRetrieveUnsafeUserInputBuffer (wdfrequest.h)
[Si applica solo a KMDF]
Il metodo WdfRequestRetrieveUnsafeUserInputBuffer recupera il buffer di input di una richiesta di I/O, se la tecnica della richiesta per l'accesso ai buffer di dati non è memorizzata nel buffer né nell'I/O diretta.
Sintassi
NTSTATUS WdfRequestRetrieveUnsafeUserInputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *InputBuffer,
[out, optional] size_t *Length
);
Parametri
[in] Request
Handle per un oggetto richiesta framework.
[in] MinimumRequiredLength
Dimensioni minime del buffer, in byte, che il driver deve elaborare la richiesta di I/O.
[out] InputBuffer
Puntatore a una posizione che riceve l'indirizzo del buffer.
[out, optional] Length
Puntatore a una posizione che riceve le dimensioni del buffer, in byte. Questo parametro è facoltativo e può essere NULL.
Valore restituito
WdfRequestRetrieveUnsafeUserInputBuffer restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Un parametro di input non è valido. |
|
Questo valore viene restituito se si verifica una delle operazioni seguenti:
|
|
Il parametro MinimumRequiredLength specifica una dimensione del buffer maggiore delle dimensioni effettive del buffer. |
Questo metodo potrebbe restituire anche altri valori NTSTATUS.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Il metodo WdfRequestRetrieveUnsafeUserInputBuffer deve essere chiamato da una funzione di callback EvtIoInCallerContext . Dopo aver chiamato WdfRequestRetrieveUnsafeUserInputBuffer, il driver deve chiamare WdfRequestProbeAndLockUserBufferForRead.
Il driver può chiamare WdfRequestRetrieveUnsafeUserInputBuffer se il codice di controllo I/O di una richiesta è IRP_MJ_WRITE o IRP_MJ_DEVICE_CONTROL.
Il driver può accedere al buffer recuperato finché non completa la richiesta di I/O rappresentata dal parametro Request .
Per altre informazioni su WdfRequestRetrieveUnsafeUserInputBuffer, vedere Accesso ai buffer di dati nei driver Framework-Based.
Esempio
Per un esempio di codice che usa WdfRequestRetrieveUnsafeUserInputBuffer, vedere WdfRequestProbeAndLockUserBufferForRead.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdfrequest.h (include Wdf.h) |
Libreria | Wdf01000.sys (vedere Framework Library Versioning). |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | 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) |