IoCheckFileObjectOpenedAsCopySource 関数 (ntifs.h)
IoCheckFileObjectOpenedAsCopySource ルーチンは、コピー意図でファイルがソース ファイルとして以前に開かれたかどうかを確認します。
構文
BOOLEAN IoCheckFileObjectOpenedAsCopySource(
[in] PFILE_OBJECT FileObject
);
パラメーター
[in] FileObject
コピーの意図をチェックするソース ファイル オブジェクトへのポインター。
戻り値
IoCheckFileObjectOpenedAsCopySource は、ファイル オブジェクトが以前にコピー ファイル意図で開かれたソース ファイルを表す場合に TRUE を返します。それ以外の場合は FALSE を返します。 TRUE の戻り値は、作成時に意図のみを通知します。これは、ファイル オブジェクトに対するすべての操作がすべてコピーの一部であることを意味するわけではありません。
注釈
次の例は、ファイル オブジェクトがコピー意図で開かれたかどうかをチェックする方法を示しています。
typedef
BOOLEAN (*PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_SOURCE)(
_In_ PFILE_OBJECT FileObject
);
typedef
BOOLEAN (*PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_DESTINATION)(
_In_ PFILE_OBJECT FileObject
);
PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_SOURCE IoCheckFileObjectOpenedAsCopySource;
PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_DESTINATION IoCheckFileObjectOpenedAsCopyDestination;
// First resolve the API
RtlInitUnicodeString(&RoutineName, L"IoCheckFileObjectOpenedAsCopySource");
IoCheckFileObjectOpenedAsCopySource = (PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_SOURCE)MmGetSystemRoutineAddress(&RoutineName);
RtlInitUnicodeString(&RoutineName, L"IoCheckFileObjectOpenedAsCopyDestination");
IoCheckFileObjectOpenedAsCopyDestination = (PIO_CHECK_FILE_OBJECT_OPENED_AS_COPY_DESTINATION)MmGetSystemRoutineAddress(&RoutineName);
// Now use the API
IoCheckFileObjectOpenedAsCopySource(FltObjects->FileObject);
IoCheckFileObjectOpenedAsCopyDestination(FltObjects->FileObject);
詳細については、 カーネル モードのファイルのコピーとコピー ファイルの検出のシナリオに関する ページを参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 11 バージョン 22H2 |
Header | ntifs.h (Wdm.h、Ntddk.h、Ntifs.h を含みます) |
IRQL | PASSIVE_LEVEL |