次の方法で共有


MRxQueryEaInfo ルーチン

MRxQueryEaInfo ルーチンは、ネットワーク ミニ リダイレクターがファイル システム オブジェクトに拡張属性情報をクエリするように要求するために RDBSS によって呼び出されます。

構文

PMRX_CALLDOWN MRxQueryEaInfo;

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

パラメーター

RxContext [in, out]
RX_CONTEXT 構造体へのポインター。 このパラメーターには、操作を要求している IRP が含まれています。

戻り値

MRxQueryEaInfo は、成功した場合に STATUS_SUCCESS を返すか、次のような適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_ACCESS_DENIED

呼び出し元には、この操作に対する適切なセキュリティが不足しています。

STATUS_BUFFER_OVERFLOW

拡張属性情報を受け取るバッファーが小さすぎます。

この戻り値は成功と見なす必要があり、RxContext パラメーターが指す RX_CONTEXT 構造体の Info.Buffer メンバーにできるだけ有効なデータを返す必要があります。

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて、要求されたデータを受信できません。

この値が返された場合、RxContext パラメーターによって指される RX_CONTEXT 構造体の InformationToReturn メンバーは、呼び出しが成功するために予想されるバッファーの最小サイズに設定する必要があります。

STATUS_CONNECTION_DISCONNECTED

接続が切断されました。

STATUS_EA_CORRUPT_ERROR

リモート サーバーから無効な拡張属性情報を受信しました。

STATUS_INSUFFICIENT_RESOURCES

クエリを完了するためのリソースが不足していました。

STATUS_INVALID_PARAMETER

無効なパラメーターが指定されました。

STATUS_NONEXISTENT_EA_ENTRY

ファイル オブジェクトに拡張属性がなく、ユーザーが拡張属性インデックスを指定しました。

STATUS_NOT_SUPPORTED

拡張属性はサポートされていません。

STATUS_ONLY_IF_CONNECTED

SRV_OPEN 構造体が接続されていません。

STATUS_REQUEST_ABORTED

ネットワーク要求が中止されました。

解説

RDBSS は、IRP_MJ_QUERY_EA 要求の受信に応答して MRxQueryEaInfo の呼び出しを発行します。

MRxQueryEaInfo を呼び出す前に、RDBSS は RxContext パラメーターが指す RX_CONTEXT 構造体の次のメンバーを変更します。

Info.Buffer メンバーは、I/O 要求パケットからユーザー バッファーに設定されます。 このバッファーは、必要に応じて RDBSS によって既にロックされています。

Info.LengthRemaining メンバーは IrpSp->Parameters.QueryEa.Length に設定されます。

QueryEa.UserEaList メンバーは IrpSp->Parameters.QueryEa.EaList に設定されます。

QueryEa.UserEaListLength メンバーは IrpSp->Parameters.QueryEa.EaListLength に設定されます。

QueryEa.UserEaIndex メンバーは IrpSp->Parameters.QueryEa.EaIndex に設定されています。

IrpSp->Flagsに SL_RESTART_SCAN ビットがオンの場合、QueryEa.RestartScan メンバーは 0 以外に設定されます。

IrpSp->Flags に SL_RETURN_SINGLE_ENTRY ビットがオンの場合、QueryEa.ReturnSingleEntry メンバーは 0 以外に設定されます。

IrpSp->Flags に SL_INDEX_SPECIFIED ビットがオンの場合、QueryEa.IndexSpecified メンバーは 0 以外に設定されます。

成功した場合、MRxQueryEaInfo は、RX_CONTEXT構造体の Info.LengthRemaininging メンバーを返される拡張属性情報の長さに設定し、Fobx->OffsetOfNextEaToReturn メンバーも更新する必要があります。 MRxQueryEaInfo の呼び出しが成功した場合、RDBSS は IRP の IoStatus.Information メンバーを IrpSp->Parameters.QueryEa.Length から RX_CONTEXT 構造体の Info.LengthRemaining メンバーを引いた値に設定します。

要件

対象プラットフォーム

デスクトップ

ヘッダー

Mrx.h (Mrx.h を含む)

関連項目

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo