Partager via


Routine MRxQueryDirectory

La routine MRxQueryDirectory est appelée par RDBSS pour demander qu’un mini-redirecteur réseau interroge les informations sur un répertoire de fichiers.

Syntaxe

PMRX_CALLDOWN MRxQueryDirectory;

NTSTATUS MRxQueryDirectory(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

Paramètres

RxContext [in, out]
Pointeur vers la structure RX_CONTEXT. Ce paramètre contient l’IRP qui demande l’opération.

Valeur retournée

MRxQueryDirectory retourne STATUS_SUCCESS en cas de réussite ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_ACCESS_DENIED

L’appelant ne dispose pas de la sécurité appropriée pour cette opération.

STATUS_INSUFFICIENT_RESOURCES

Les ressources étaient insuffisantes pour terminer la requête.

STATUS_INVALID_NETWORK_RESPONSE

Une mémoire tampon d’informations de fichier non valide a été reçue du serveur distant ou une longueur de nom de fichier retournée a dépassé la longueur maximale autorisée.

STATUS_INVALID_PARAMETER

Un FileInformationClass non valide a été spécifié dans le membre Info.FileInformationClass de la structure RX_CONTEXT pointée par le paramètre RxContext .

STATUS_LINK_FAILED

La tentative de reconnexion à un serveur distant pour terminer la requête a échoué.

STATUS_NO_SUCH_FILE

La requête n’a trouvé aucune entrée.

STATUS_SHARING_VIOLATION

Une violation de partage s’est produite.

Remarques

Avant d’appeler MRxQueryDirectory, RDBSS modifie les membres suivants dans la structure RX_CONTEXT pointée par le paramètre RxContext :

Le membre Info.FileInformationClass est défini sur IrpSp-Parameters.QueryDirectory.FileInformationClass>.

Le membre Info.Buffer est défini sur la mémoire tampon de l’utilisateur à partir du paquet de requête d’E/S. Cette mémoire tampon a déjà été verrouillée par RDBSS si nécessaire.

Le membre Info.LengthRemaining est défini sur IrpSp-Parameters.QueryDirectory.Length>.

Le membre QueryDirectory.FileIndex est défini sur IrpSp-Parameters.QueryDirectory.FileIndex>.

Le membre QueryDirectory.RestartScan est défini sur une valeur différente de zéro si IrpSp-Flags> a le bit SL_RESTART_SCAN activé.

Le membre QueryDirectory.ReturnSingleEntry est défini sur une valeur différente de zéro si IrpSp-Flags> a le SL_RETURN_SINGLE_ENTRY bit activé.

Le membre QueryDirectory.IndexSpecified est défini sur une valeur différente de zéro si IrpSp-Flags> a le SL_INDEX_SPECIFIED bit activé.

Le membre QueryDirectory.InitialQuery est défini sur une valeur différente de zéro si le membre UnicodeQueryTemplate.Buffer du FOBX associé a la valeur NULL et que le membre Flags du FOBX n’a pas le FOBX_FLAG_MATCH_ALL bit activé.

Pour une requête de carte générique (« *.* », par exemple), RDBSS définit le membre UnicodeQueryTemplate.Buffer du FOBX associé à la requête de carte générique passée.

Si le membre PostRequest de la structure RX_CONTEXT a la valeur TRUE au retour de MRxQueryDirectory, RDBSS appelle RxFsdPostRequest en passant la structure RX_CONTEXT à une file d’attente worker pour traitement par le processus du système de fichiers (FSP).

Configuration requise

Plateforme cible

Desktop (Expérience utilisateur)

En-tête

Mrx.h (inclure Mrx.h)

Voir aussi

MRxIsValidDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo

RxFsdPostRequest