다음을 통해 공유


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