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 |
标头 | ntifs.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | PASSIVE_LEVEL |