IoReplaceFileObjectName 関数 (ntifs.h)

IoReplaceFileObjectName ルーチンは、ファイル オブジェクトの名前を置き換えます。

構文

NTSTATUS IoReplaceFileObjectName(
  [in] PFILE_OBJECT FileObject,
  [in] PWSTR        NewFileName,
  [in] USHORT       FileNameLength
);

パラメーター

[in] FileObject

ファイル名が置き換えられるファイル オブジェクトへのポインター。

[in] NewFileName

ファイル オブジェクトの新しい名前の文字列バッファーへのポインター。

[in] FileNameLength

ファイル オブジェクトの新しい名前の長さ (バイト単位)。

戻り値

それ以外の場合は、STATUS_SUCCESSまたは次のいずれかの NTSTATUS 値を返します。

リターン コード 説明
STATUS_INVALID_PARAMETER 指定されたファイル オブジェクトには、置き換える名前がありません。
STATUS_INSUFFICIENT_RESOURCES バッファーを割り当ててこの操作を完了するには、メモリが不足しています。

注釈

ドライバーは IoReplaceFileObjectName を使用して、ファイル オブジェクト内の名前を安全に置き換える必要があります。 これにより、I/O マネージャーはファイル オブジェクトに関連付けられているバッファーの有効期間を制御できます。 IoReplaceFileObjectName を使用せずにファイル オブジェクト名を直接置き換えると、名前の他の使用法と競合する可能性があるため、可能な場合は避ける必要があります。

このルーチンは、カーネルが名前の有効期間を正しく管理できるように、手動で行うのではなく、ファイル オブジェクト名を置き換えるために使用する必要があります。

要件

要件
サポートされている最小のクライアント Windows 7
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL