次の方法で共有


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

こちらもご覧ください

FILE_NAMES_INFORMATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_GENERATE_FILE_NAME

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT_EX

UNICODE_STRING