WdfRequestRetrieveUnsafeUserInputBuffer, fonction (wdfrequest.h)
[S’applique uniquement à KMDF]
La méthode WdfRequestRetrieveUnsafeUserInputBuffer récupère la mémoire tampon d’entrée d’une demande d’E/S, si la technique de la demande pour accéder aux mémoires tampons de données n’est ni mise en mémoire tampon ni E/S directe.
Syntaxe
NTSTATUS WdfRequestRetrieveUnsafeUserInputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *InputBuffer,
[out, optional] size_t *Length
);
Paramètres
[in] Request
Handle d’un objet de requête d’infrastructure.
[in] MinimumRequiredLength
Taille de mémoire tampon minimale, en octets, dont le pilote a besoin pour traiter la demande d’E/S.
[out] InputBuffer
Pointeur vers un emplacement qui reçoit l’adresse de la mémoire tampon.
[out, optional] Length
Pointeur vers un emplacement qui reçoit la taille de la mémoire tampon, en octets. Ce paramètre est facultatif et peut être NULL.
Valeur retournée
WdfRequestRetrieveUnsafeUserInputBuffer retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
Un paramètre d’entrée n’est pas valide. |
|
Cette valeur est retournée si l’une des opérations suivantes se produit :
|
|
Le paramètre MinimumRequiredLength spécifie une taille de mémoire tampon supérieure à la taille réelle de la mémoire tampon. |
Cette méthode peut également retourner d’autres valeurs NTSTATUS.
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
La méthode WdfRequestRetrieveUnsafeUserInputBuffer doit être appelée à partir d’une fonction de rappel EvtIoInCallerContext . Après avoir appelé WdfRequestRetrieveUnsafeUserInputBuffer, le pilote doit appeler WdfRequestProbeAndLockUserBufferForRead.
Le pilote peut appeler WdfRequestRetrieveUnsafeUserInputBuffer si le code de contrôle d’E/S d’une requête est IRP_MJ_WRITE ou IRP_MJ_DEVICE_CONTROL.
Le pilote peut accéder à la mémoire tampon récupérée jusqu’à ce qu’il termine la demande d’E/S que représente le paramètre Request .
Pour plus d’informations sur WdfRequestRetrieveUnsafeUserInputBuffer, consultez Accès aux mémoires tampons de données dans les pilotes Framework-Based.
Exemples
Pour obtenir un exemple de code qui utilise WdfRequestRetrieveUnsafeUserInputBuffer, consultez WdfRequestProbeAndLockUserBufferForRead.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
En-tête | wdfrequest.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.) |
IRQL | PASSIVE_LEVEL |
Règles de 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) |