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

另请参阅

EXTENDED_CREATE_INFORMATION

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFile