Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[S’applique uniquement à KMDF]
La méthode WdfRequestRetrieveUnsafeUserOutputBuffer récupère la mémoire tampon de sortie d’une requête d’E/S, si la technique de la demande d’accès aux mémoires tampons de données n’est ni mise en mémoire tampon nid’E/S directes.
Syntaxe
NTSTATUS WdfRequestRetrieveUnsafeUserOutputBuffer(
[in] WDFREQUEST Request,
[in] size_t MinimumRequiredLength,
[out] PVOID *OutputBuffer,
[out, optional] size_t *Length
);
Paramètres
[in] Request
Handle vers un objet de requête de framework.
[in] MinimumRequiredLength
Taille minimale de la mémoire tampon, en octets, que le pilote doit traiter la requête d’E/S.
[out] OutputBuffer
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 de retour
WdfRequestRetrieveUnsafeUserOutputBuffer retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :
| Retourner le code | 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 .
Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.
Remarques
La méthode WdfRequestRetrieveUnsafeUserOutputBuffer doit être appelée à partir d’une fonction de rappel EvtIoInCallerContext. Après avoir appelé WdfRequestRetrieveUnsafeUserOutputBuffer, le pilote doit appeler WdfRequestProbeAndLockUserBufferForWrite.
Le pilote peut appeler WdfRequestRetrieveUnsafeUserOutputBuffer si le code de contrôle d’E/S d’une requête est IRP_MJ_READ ou IRP_MJ_DEVICE_CONTROL.
Le pilote peut accéder à la mémoire tampon récupérée jusqu’à ce qu’elle termine la requête d’E/S que le paramètre de demande de représente.
Pour plus d’informations sur WdfRequestRetrieveUnsafeUserOutputBuffer, consultez Accès aux mémoires tampons de données dans Framework-Based Drivers.
Exemples
Pour obtenir un exemple de code qui utilise WdfRequestRetrieveUnsafeUserOutputBuffer, consultez WdfRequestProbeAndLockUserBufferForRead.
Exigences
| Exigence | Valeur |
|---|---|
| plateforme cible | Universel |
| version minimale de KMDF | 1.0 |
| d’en-tête | wdfrequest.h (include Wdf.h) |
| bibliothèque | Wdf01000.sys (voir Versioning de la bibliothèque Framework.) |
| IRQL | PASSIVE_LEVEL |
| règles de conformité DDI | BufAfterReqCompletedIntIoctl(kmdf), BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctl(km), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedRead(kmdf), BufAfterReqCompletedReadA (kmdf), BufAfterReqCompletedWrite(kmdf), DriverCreate(kmdf), InvalidReqAccess(kmdf), Non valide, KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), OutputBufferAPI(kmdf) |