FltGetTunneledName 関数 (fltkernel.h)
構文
NTSTATUS FLTAPI FltGetTunneledName(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_FILE_NAME_INFORMATION FileNameInformation,
[out] PFLT_FILE_NAME_INFORMATION *RetTunneledFileNameInformation
);
パラメーター
[in] CallbackData
I/O 操作 (FLT_CALLBACK_DATA) のコールバック データ構造体へのポインター。 このパラメーターは必須であり、NULL
[in] FileNameInformation
FltGetFileNameInformation、
[out] RetTunneledFileNameInformation
トンネリングされたファイル名を含む新しく割り当てられた構造体のアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター。 トンネル名が見つからない場合、この変数は NULL
戻り値
FltGetTunneledName
リターン コード | 形容 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | FltGetTunneledName |
備考
NTFS や FAT などのファイル システムでは、ボリュームごとのトンネル キャッシュを使用して、名前変更、リンク、または削除されるファイルのファイル名やその他のメタデータを簡単に保持します。 ファイル名のトンネリングにより、FltGetFileNameInformation、fltGetFileNameInformationUnsafe、または FltGetDestinationFileNameInformation
ミニフィルター ドライバーが、作成 (IRP_MJ_CREATE) の事前操作コールバック ルーチン (
正規化されたファイル名情報のみがトンネリングの影響を受けます。 フィルター マネージャーでは、トンネリングによって短い名前が長い名前に変更される可能性があるため、作成、ハード リンク、または名前変更操作が実際に行われるまで、最終的なコンポーネントを正規化することはできません。 したがって、ミニフィルター ドライバーは、操作後コールバック ルーチンから FltGetTunneledName
正規化されたファイル名の情報の詳細については、FLT_FILE_NAME_INFORMATIONを参照してください。
短いファイル名または開いているファイル名の情報のみを取得するミニフィルター ドライバーは、FltGetTunneledName
FltGetFileNameInformation、
手記
ファイル名トンネリングは、この方法で作成、ハード リンク、名前変更の操作にのみ影響します。 読み取りと書き込みなど、他の I/O 操作には影響しません。
次のペアの操作により、ファイル名 名前 トンネリングが発生する可能性があります。
- delete(name)/create(name)
- delete(name)/rename(source, name)
- rename(name, newname)/create(name)
- rename(name, newname)/rename(source, name)
ファイルのトンネル名が見つからない場合、
FltGetTunneledName
FltGetTunneledName
呼び出し元は、RetTunneledFileNameInformation パラメーターで返される構造体の内容を変更しないでください。この構造体はフィルター マネージャーによってキャッシュされるため、すべてのミニフィルター ドライバーで使用できます。
ファイル トンネリングを使用すると、ファイル システムに依存するプログラムとの互換性により、ファイルメタ情報を短期間保持できます。たとえば、安全な保存プロセスの場合などです。 トンネリングでは、ファイルの長い名前と短い名前 (8.3) の間の関連付けが保持されます。 ディレクトリからファイル名を削除すると (名前の変更または削除)、その短い名前と長い名前のペアと作成時間がトンネル キャッシュに保存され、削除された名前でキーが設定されます。 名前がディレクトリに追加されると (名前の変更または作成)、キャッシュが検索され、復元する情報があるかどうかを判断します。 キャッシュは、ディレクトリのインスタンスごとに有効です。 ディレクトリが削除されると、そのキャッシュが削除されます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
万国 |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
ライブラリ | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
関連項目
FltGetDestinationFileNameInformation の
FltGetFileNameInformation の
FltGetFileNameInformationUnsafe の
FltParseFileNameInformation の
FltReferenceFileNameInformation の
FltReleaseFileNameInformation の