次の方法で共有


COPY_INFORMATION構造体 (ntifs.h)

COPY_INFORMATION 構造体は、NtCopyFileChunkからのコピー操作読み取りと書き込みの呼び出しを関連付けます。

構文

typedef struct _COPY_INFORMATION {
  PFILE_OBJECT SourceFileObject;
  LONGLONG     SourceFileOffset;
} COPY_INFORMATION, *PCOPY_INFORMATION;

メンバーズ

SourceFileObject

コピーのソース ファイル オブジェクト。

SourceFileOffset

コピーのソース ファイルのファイル オフセット。 この値は、コピーが完全かつ忠実であることを確認するために、書き込み中にコピー先のファイル オフセットと比較できます。

備考

コピーの読み取り操作と書き込み操作には、それぞれの IRP 拡張機能に同じ情報が含まれているため、関連付けは、IopCopyInformationType IRP 拡張機能を持つすべての書き込みに対して COPY_INFORMATION を使用して行うことができます。

読み取り操作と書き込み操作が関連付けられ、コピーされたデータが検証された場合、書き込まれたコピー先ファイルは、ソースの完全で忠実なコピーと見なすことができます。 つまり、信頼はソース ファイルから宛先に渡すことができます。

通常、コピーはチャンク単位で行われます。 ファイル コピー全体を検証するには:

  • 各チャンク (NtCopyFileChunkする各呼び出し) には、その書き込み操作が前の読み取り操作と関連付けられる必要があります。

  • 一緒にコピーされるすべてのチャンクは、ファイルの範囲全体をカバーする必要があります。

フィルターは、次のように、書き込みの IRP 拡張機能で提供されるソース情報を使用して、コピーされたデータの正確性を確認できます。

  • SourceFileObject で一致する読み取り発生したことを確認します。
  • SourceFileOffset が書き込み操作のファイル オフセットと一致することを確認します。

詳細については、カーネル モードのファイルコピーとファイルのコピーの検出シナリオ を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 11 バージョン 22H2
ヘッダー ntifs.h

関連項目

FltGetCopyInformationFromCallbackData

IoCheckFileObjectOpenedAsCopySource

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFileする