FsRtlChangeBackingFileObject 関数 (ntifs.h)
FsRtlChangeBackingFileObject ルーチンは、現在のファイル オブジェクトを新しいファイル オブジェクトに置き換えます。
構文
NTSTATUS FsRtlChangeBackingFileObject(
PFILE_OBJECT CurrentFileObject,
PFILE_OBJECT NewFileObject,
FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
ULONG Flags
);
パラメーター
CurrentFileObject
現在のファイル オブジェクト [入力、省略可能] です。 CurrentFileObject
NewFileObject
[入力] OS が内部的に参照して格納する新しいファイル オブジェクト。
ChangeBackingType
Flags
[入力] 将来の使用のために予約されています。
戻り値
FsRtlChangeBackingFileObject ルーチンは、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合
リターン コード | 形容 |
---|---|
STATUS_INVALID_PARAMETER_2 | NewFileObject が指定するファイル オブジェクトが CurrentFileObject と同じストリームを表していないため、変更操作が失敗しました。 |
STATUS_INVALID_PARAMETER_3 | ChangeBackingTypeで呼び出し元が無効なバッキング型 |
STATUS_INVALID_PARAMETER_4 | 呼び出し元が Flagsで無効な値を指定したため、変更操作が失敗しました。 |
STATUS_NOT_SUPPORTED | 呼び出し元がファイル オブジェクトの後続のスワップを許可しない方法でファイル オブジェクトを取得したため、変更操作が失敗しました。 たとえば、呼び出し元が ccGetFileObjectFromSectionPtrs |
備考
FsRtlChangeBackingFileObject ルーチンは、次のいずれかのファイル オブジェクトを変更します。
ストリームのメモリ マネージャーのイメージ制御領域の 1 つ
ストリームのメモリ マネージャーのデータ制御領域
ストリームのキャッシュ マネージャーの共有キャッシュ マップ
FsRtlChangeBackingFileObject ルーチンは同期的ではありません。 ファイル オブジェクトの変更要求を処理し、すぐに返します。 キャッシュ・マネージャーとメモリー・マネージャーは、ファイル・オブジェクトの変更を同期し、古いファイル・オブジェクトに関連付けられている不完全な操作がすべて完了するまで、古いファイル・オブジェクトを解放しません。 FsRtlChangeBackingFileObject からのSTATUS_SUCCESSの戻り状態は、オペレーティング システムが既にファイル オブジェクトを変更したことを意味するものではありません。
ただし、FsRtlChangeBackingFileObject 正常に実行 後、オペレーティング システムは今後のすべての操作を新しいファイル オブジェクトに関連付けます。
複数のバッキング型のファイル オブジェクトを変更するには、呼び出し元は、FsRtlChangeBackingFileObject 複数回呼び出す必要があります。バッキングの種類ごとに 1 回ずつ変更します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | FsRtlChangeBackingFileObject ルーチンは、Windows Vista 以降で使用できます。 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を |
PowerIrpDDis(wdm) |