RxFsdPostRequest, fonction (rxprocs.h)
RxFsdPostRequest met en file d’attente le paquet de requête d’E/S (IRP) spécifié par une structure de RX_CONTEXT à la file d’attente worker pour traitement par le processus de système de fichiers (FSP).
Syntaxe
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
Paramètres
[in] RxContext
Pointeur vers le RX_CONTEXT contenant l’IRP à mettre en file d’attente vers un thread de travail.
Valeur retournée
RxFsdPostRequest retourne les valeurs suivantes :
Code de retour | Description |
---|---|
|
Une requête asynchrone a été effectuée et a été mise en file d’attente vers un thread de travail pour un traitement ultérieur. La status de la demande est en attente. |
Remarques
RxFsdPostRequest est normalement appelé par RDBSS pour traiter un paquet de requête d’E/S asynchrone (IRP). Ces IRP sont normalement reçus par RDBSS en réponse à une application en mode utilisateur demandant des opérations sur un fichier. Il est également possible pour un autre pilote de noyau d’émettre un tel IRP.
Si le membre Flags de la structure RX_CONTEXT pointée par le paramètre RxContext n’a pas le bit RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED défini, RxFsdPostRequest tente de verrouiller tout espace d’adressage utilisateur requis pour certains types de demandes. Les demandes qui entraînent ce comportement sont basées sur le membre MajorFunction de RX_CONTEXT structure pointée par RxContext et incluent les éléments suivants :
- IRP_MJ_DIRECTORY CONTROL lorsque RxContext->MinorFunction est IRP_MN_QUERY_DIRECTORY.
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
Si le membre FileObject de l’IRP n’est pas NULL et que la demande peut être publiée immédiatement pour traitement (le seuil de la file d’attente de l’appareil est vide), cela se produit. Sinon, la demande est publiée dans une file d’attente de dépassement de capacité sur le volume.
Tous les appels à RxFsdPostRequest sont mis en file d’attente vers un thread de travail pour appeler la routine RxFsdDispatch en passant dans le paramètre RxContext .
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | rxprocs.h (inclure Rxprocs.h, Rxcontx.h) |
IRQL | <= APC_LEVEL |