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) |