PFLT_NORMALIZE_NAME_COMPONENT コールバック関数 (fltkernel.h)
フィルター マネージャーの名前キャッシュのファイル名を提供するミニフィルター ドライバーは、ミニフィルター ドライバーの NormalizeNameComponentCallback ルーチンとしてPFLT_NORMALIZE_NAME_COMPONENT型のルーチンを登録できます。
構文
PFLT_NORMALIZE_NAME_COMPONENT PfltNormalizeNameComponent;
NTSTATUS PfltNormalizeNameComponent(
[in] PFLT_INSTANCE Instance,
[in] PCUNICODE_STRING ParentDirectory,
[in] USHORT VolumeNameLength,
[in] PCUNICODE_STRING Component,
[out] PFILE_NAMES_INFORMATION ExpandComponentName,
[in] ULONG ExpandComponentNameLength,
[in] FLT_NORMALIZE_NAME_FLAGS Flags,
[in, out] PVOID *NormalizationContext
)
{...}
パラメーター
[in] Instance
このコールバック ルーチンが登録されているミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。
[in] ParentDirectory
この名前 コンポーネントの親 ディレクトリの名前を含むUNICODE_STRING構造体へのポインター。
[in] VolumeNameLength
ParentDirectory パラメーターが指す構造体に格納されている親ディレクトリ名の長さ (バイト単位)。
[in] Component
展開する名前コンポーネントを含むUNICODE_STRING構造体へのポインター。
[out] ExpandComponentName
名前 コンポーネントの展開 された (正規化された) ファイル名情報を受け取るFILE_NAMES_INFORMATION構造体へのポインター。
[in] ExpandComponentNameLength
ExpandComponentName パラメーターが指すバッファーの長さ (バイト単位)。
[in] Flags
名前正規化フラグ。 FLTFL_NORMALIZE_NAME_CASE_SENSITIVEは、正規化する名前で大文字と小文字が区別されることを指定します。 FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAMEは、 FltGetDestinationFileNameInformation ルーチン呼び出しを処理するためにコールバック ルーチンが呼び出されたことを指定します。
[in, out] NormalizationContext
同じファイル名パス内の残りのコンポーネントを正規化するために行われる、このコールバック ルーチンへの後続の呼び出しで渡されるミニフィルター ドライバーによって提供されるコンテキスト情報へのポインター。
戻り値
このコールバック ルーチンは、STATUS_SUCCESSまたは適切な NTSTATUS 値を返します。 Component パラメーターが指定する名前コンポーネントが ParentDirectory パラメーターが指定する親ディレクトリに存在しない場合、このコールバック ルーチンはSTATUS_NO_SUCH_FILEを返す必要があります。 このコールバック ルーチンが親ディレクトリにIRP_MN_QUERY_DIRECTORY (FileNamesInformation) 要求を発行すると、ファイル システムは正しい状態コードを返します。 このような状況では、このコールバックは、ファイル システムが返す状態コードを返すだけです。
注釈
フィルター マネージャーの名前キャッシュのファイル名を提供するミニフィルター ドライバーは、ミニフィルター ドライバーの NormalizeNameComponentCallback ルーチンとしてPFLT_NORMALIZE_NAME_COMPONENT型のルーチンを登録できます。
このコールバック ルーチンを登録するために、ミニフィルター ドライバーは、PFLT_NORMALIZE_NAME_COMPONENT型のルーチンのアドレスを、ミニフィルター ドライバーが FltRegisterFilter のパラメーターとして渡すFLT_REGISTRATION構造体の NormalizeNameComponentCallback メンバーに格納します。
フィルター マネージャーは、このコールバック ルーチンを呼び出して、ミニフィルター ドライバーの名前が変更されたファイル名パス内のコンポーネントの正規化された名前をミニフィルター ドライバーに照会します。 ファイル名パスにこのようなコンポーネントが複数含まれている場合、フィルター マネージャーは、パス内のすべてのコンポーネントを正規化するプロセスで、このコールバック ルーチンを複数回呼び出すことができます。 ミニフィルター ドライバーは 、NormalizationContext パラメーターを使用して、このコールバック ルーチンの後続の呼び出しにコンテキスト情報を渡すことができます。
ミニフィルター ドライバーで NormalizationContext パラメーターを使用する場合は、正規化コンテキスト クリーンアップ コールバック ルーチンも登録する必要があります。 詳細については、 PFLT_NORMALIZE_CONTEXT_CLEANUPのリファレンス エントリを参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | fltkernel.h (Fltkernel.h を含む) |
IRQL | PASSIVE_LEVEL |
こちらもご覧ください
PFLT_NORMALIZE_CONTEXT_CLEANUP