次の方法で共有


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
Header ntifs.h

こちらもご覧ください

FltGetCopyInformationFromCallbackData

IoCheckFileObjectOpenedAsCopySource

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFile