MRxQueryFileInfo ルーチン
TheMRxQueryFileInfo ルーチンは、ネットワーク ミニ リダイレクターがファイル システム オブジェクトにファイル情報をクエリするように要求するために RDBSS によって呼び出されます。
構文
PMRX_CALLDOWN MRxQueryFileInfo;
NTSTATUS MRxQueryFileInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
パラメーター
RxContext [in, out]
RX_CONTEXT 構造体へのポインター。 このパラメーターには、操作を要求している IRP が含まれています。
戻り値
MRxQueryFileInfo は、成功した場合に STATUS_SUCCESS を返すか、次のような適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
STATUS_ACCESS_DENIED | 呼び出し元には、この操作に対する適切なセキュリティが不足しています。 |
STATUS_BUFFER_OVERFLOW | ファイル情報を受信するバッファーが小さすぎました。 この戻り値は成功と見なす必要があり、RxContext パラメーターが指す RX_CONTEXT 構造体の Info.Buffer メンバーにできるだけ有効なデータを返す必要があります。 |
STATUS_BUFFER_TOO_SMALL | バッファーが小さすぎて、要求されたデータを受信できません。 この値が返された場合、RxContext パラメーターによって指される RX_CONTEXT 構造体の InformationToReturn メンバーは、呼び出しが成功するために予想されるバッファーの最小サイズに設定する必要があります。 |
STATUS_INSUFFICIENT_RESOURCES | クエリを完了するためのリソースが不足していました。 |
STATUS_INVALID_NETWORK_RESPONSE | 無効なファイル情報バッファーがリモート サーバーから受信されました。 |
STATUS_INVALID_PARAMETER | 無効なパラメーターが指定されました。 この値は、RX_CONTEXTの FileInformationClass メンバーの無効な値が渡された場合に返すことができます。 この値は、指定された FileInformationClass メンバーが FileStreamInformation 用であり、リモート ファイル システムがストリームをサポートしていない場合にも返すことができます。 |
STATUS_OBJECT_NAME_NOT_FOUND | オブジェクト名が見つかりませんでした。 これはエラー コードです。 |
解説
RDBSS は、IRP_MJ_QUERY_INFORMATION 要求の受信に応答して MRxQueryFileInfo の呼び出しを発行します。
MRxQueryFileInfo を呼び出す前に、RDBSS は RxContext パラメーターが指す RX_CONTEXT 構造体の次のメンバーを変更します。
Info.FileInformationClass メンバーは、要求された FILE_INFORMATION_CLASS 値である IrpSp->Parameters.QueryFile.FileInformationClass に設定されます。
Info.Buffer メンバーは、I/O 要求パケットからユーザー バッファーに設定されます。
Info.LengthRemaining メンバーは IrpSp->Parameters.QueryFile.Length に設定されます。
QueryDirectory.FileIndex メンバーは IrpSp->Parameters.QueryDirectory.FileIndex に設定されています。
IrpSp->Flags に SL_RESTART_SCAN ビットが設定されている場合、QueryDirectory.RestartScan メンバーが設定されます。
IrpSp->Flags にビットが設定されている場合、QueryDirectory.ReturnSingleEntry メンバー SL_RETURN_SINGLE_ENTRY 設定されます。
Fobx->UnicodeQueryTemplate.Buffer が NULL で、Fobx->Flags に FOBX_FLAG_MATCH_ALL ビットが設定されていない場合、QueryDirectory.InitialQuery メンバーが設定されます。
成功した場合、ネットワーク ミニ リダイレクターは、RX_CONTEXT 構造体の Info.LengthRemaining メンバーに Info.Length メンバーから返されるファイル情報の長さを引いた値に設定する必要があります。 MRxQueryFileInfo の呼び出しが成功した場合、RDBSS は IRP の IoStatus.Information メンバーを IrpSp->Parameters.QueryFile.Length から RX_CONTEXT 構造体の Info.LengthRemaining メンバーを引いた値に設定します。
RDBSS では、IrpSp->Flags セットのSL_INDEX_SPECIFIED ビットを使用した要求はサポートされていません。 ネットワーク ミニ リダイレクターは、IrpSp->Flagsの SL_INDEX_SPECIFIED ビットが設定された MRxQueryFileInfo への呼び出しを受け取りません。
要件
対象プラットフォーム |
デスクトップ |
ヘッダー |
Mrx.h (Mrx.h を含む) |