Partager via


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
STATUS_PENDING
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
Le MajorFunction membre de RxContext détermine la file d’attente de travail à laquelle cette demande sera publiée. Une demande IRP_MJ_DEVICE_CONTROL où le membre Parameters.DeviceIoControl.IoControlCode est IOCTL_REDIR_QUERY_PATH sera publié dans la file d’attente de travail retardée. Dans le cas, les indicateurs de membre du paramètre RxContext auront le jeu de bits RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE. Toutes les autres demandes sont publiées dans la file d’attente de travail critique et le membre Indicateurs du paramètre RxContext aura le jeu de bits RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE.

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

Voir aussi

RxFsdDispatch