Routine MRxQueryFileInfo
La routineMRxQueryFileInfo est appelée par RDBSS pour demander qu’un fichier de requête de mini-redirecteur réseau s’affiche sur un objet de système de fichiers.
Syntaxe
PMRX_CALLDOWN MRxQueryFileInfo;
NTSTATUS MRxQueryFileInfo(
_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
MRxQueryFileInfo retourne STATUS_SUCCESS sur la 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_BUFFER_OVERFLOW | La mémoire tampon pour recevoir les informations de fichier était trop petite. Cette valeur de retour doit être considérée comme une réussite et autant de données valides que possible doivent être retournées dans le membre Info.Buffer de la structure RX_CONTEXT pointée vers le paramètre RxContext . |
STATUS_BUFFER_TOO_SMALL | La mémoire tampon est trop petite pour recevoir les données demandées. Si cette valeur est retournée, le membre InformationToReturn de la structure RX_CONTEXT pointée par le paramètre RxContext doit être défini sur la taille minimale de la mémoire tampon attendue pour que l’appel réussisse. |
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. |
STATUS_INVALID_PARAMETER | Un paramètre non valide a été spécifié. Cette valeur peut être retournée si une valeur non valide pour le membre FileInformationClass du RX_CONTEXT est transmise. Cette valeur peut également être retournée si le membre FileInformationClass spécifié est pour FileStreamInformation et si le système de fichiers distant ne prend pas en charge les flux. |
STATUS_OBJECT_NAME_NOT_FOUND | Le nom de l’objet est introuvable. Il s’agit d’un code d’erreur. |
Remarques
RDBSS émet un appel à MRxQueryFileInfo en réponse à la réception d’une demande de IRP_MJ_QUERY_INFORMATION .
Avant d’appeler MRxQueryFileInfo, RDBSS modifie les membres suivants dans la structure RX_CONTEXT pointée vers le paramètre RxContext :
Le membre Info.FileInformationClass est défini sur IrpSp-Parameters.QueryFile.FileInformationClass>, la valeur FILE_INFORMATION_CLASS demandée.
Le membre Info.Buffer est défini sur la mémoire tampon utilisateur à partir du paquet de demande d’E/S.
Le membre Info.LengthRemaining est défini sur IrpSp-Parameters.QueryFile.Length>.
Le membre QueryDirectory.FileIndex est défini sur IrpSp-Parameters.QueryDirectory.FileIndex>.
Le membre QueryDirectory.RestartScan est défini si IrpSp-Flags> a le SL_RESTART_SCAN bit défini.
Le membre QueryDirectory.ReturnSingleEntry est défini si IrpSp-Flags> a SL_RETURN_SINGLE_ENTRY bit défini.
Le membre QueryDirectory.InitialQuery est défini si Fobx-UnicodeQueryTemplate.Buffer> a la valeur NULL et si Fobx-Flags> n’a pas le FOBX_FLAG_MATCH_ALL bit défini.
En cas de réussite, le mini-redirecteur réseau doit définir le membre Info.LengthRemaining de la structure RX_CONTEXT sur membre Info.Length moins la longueur des informations de fichier retournées. Si l’appel à MRxQueryFileInfo a réussi, RDBSS définit le membre IoStatus.Information de l’IRP sur IrpSp-Parameters.QueryFile.Length> moins le membre Info.LengthRemaining de RX_CONTEXT.
RDBSS ne prend pas en charge les requêtes avec le bit SL_INDEX_SPECIFIED des indicateurs IrpSp-Flags> définis. Un mini-redirecteur réseau ne reçoit pas d’appels à MRxQueryFileInfo avec le SL_INDEX_SPECIFIED bit d’IrpSp-Flags> défini.
Configuration requise
Plateforme cible |
Desktop (Expérience utilisateur) |
En-tête |
Mrx.h (inclure Mrx.h) |