Partager via


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)

Voir aussi

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo