Routine MRxQueryEaInfo
La routine MRxQueryEaInfo est appelée par RDBSS pour demander qu’un mini-redirecteur réseau interroge des informations d’attribut étendues sur un objet de système de fichiers.
Syntaxe
PMRX_CALLDOWN MRxQueryEaInfo;
NTSTATUS MRxQueryEaInfo(
_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
MRxQueryEaInfo retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, telle que l’une des suivantes :
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 d’attribut étendu était trop petite. Cette valeur de retour doit être considérée comme réussie et le plus grand nombre de données valides possible doivent être retournées dans le membre Info.Buffer de la structure RX_CONTEXT pointée par 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_CONNECTION_DISCONNECTED | La connexion a été déconnectée. |
STATUS_EA_CORRUPT_ERROR | Des informations d’attribut étendu non valides ont été reçues du serveur distant. |
STATUS_INSUFFICIENT_RESOURCES | Les ressources étaient insuffisantes pour terminer la requête. |
STATUS_INVALID_PARAMETER | Un paramètre non valide a été spécifié. |
STATUS_NONEXISTENT_EA_ENTRY | Il n’existe aucun attribut étendu sur l’objet file et l’utilisateur a fourni un index d’attribut étendu. |
STATUS_NOT_SUPPORTED | Les attributs étendus ne sont pas pris en charge. |
STATUS_ONLY_IF_CONNECTED | La structure SRV_OPEN n’est pas connectée. |
STATUS_REQUEST_ABORTED | La requête réseau a été abandonnée. |
Remarques
RDBSS émet un appel à MRxQueryEaInfo en réponse à la réception d’une demande de IRP_MJ_QUERY_EA .
Avant d’appeler MRxQueryEaInfo, RDBSS modifie les membres suivants dans la structure RX_CONTEXT pointée par le paramètre RxContext :
Le membre Info.Buffer est défini sur la mémoire tampon de l’utilisateur à partir du paquet de demande 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.QueryEa.Length>.
Le membre QueryEa.UserEaList est défini sur IrpSp-Parameters.QueryEa.EaList>.
Le membre QueryEa.UserEaListLength est défini sur IrpSp-Parameters.QueryEa.EaListLength>.
Le membre QueryEa.UserEaIndex est défini sur IrpSp-Parameters.QueryEa.EaIndex>.
Le membre QueryEa.RestartScan est défini sur une valeur différente de zéro si IrpSp-Flags> a le SL_RESTART_SCAN bit activé.
Le membre QueryEa.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 QueryEa.IndexSpecified est défini sur une valeur différente de zéro si IrpSp-Flags> a le SL_INDEX_SPECIFIED bit activé.
En cas de réussite, MRxQueryEaInfo doit définir le membre Info.LengthRemaininging de la structure RX_CONTEXT sur la longueur des informations d’attribut étendues retournées et mettre également à jour le membre Fobx-OffsetOfNextEaToReturn>. Si l’appel à MRxQueryEaInfo a réussi, RDBSS définit le membre IoStatus.Information de l’IRP sur IrpSp-Parameters.QueryEa.Length> moins le membre Info.LengthRemaining de RX_CONTEXT.
Configuration requise
Plateforme cible |
Desktop (Expérience utilisateur) |
En-tête |
Mrx.h (inclure Mrx.h) |