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 le 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 de retour
RxFsdPostRequest retourne les valeurs suivantes :
Retourner le code | 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. L’état de la demande est en attente. |
Remarques
RxFsdPostRequest est normalement appelée par RDBSS pour traiter un paquet de requêtes d’E/S asynchrone (IRP). Ces IRPS sont normalement reçues 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 jeu de bits RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED, RxFsdPostRequest tente de verrouiller tout espace d’adressage utilisateur requis pour certains types de requêtes. Les requêtes qui entraînent ce comportement sont basées sur le membre MajorFunction RX_CONTEXT pointé par rxContext et incluent les éléments suivants :
- IRP_MJ_DIRECTORY CONTROL quand RxContext->MinorFunction est IRP_MN_QUERY_DIRECTORY.
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
Si le FileObject membre de l’IRP n’est pas NULL et que la demande peut être publiée immédiatement pour le traitement (le seuil de la file d’attente de l’appareil est vide), cela se produit. Sinon, la demande sera 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 le paramètre RxContext.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | rxprocs.h (include Rxprocs.h, Rxcontx.h) |
IRQL | <= APC_LEVEL |