다음을 통해 공유


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