재분석 지점 작업

파일 시스템이 재분석 지점을 지원하는지 여부를 확인하려면 GetVolumeInformation 함수를 호출하고 FILE_SUPPORTS_REPARSE_POINTS 비트 플래그를 검사합니다.

DeviceIoControl 함수를 사용하면 재분석 지점의 설정, 수정, 가져오기 및 제거 작업을 할 수 있습니다. 다음 표에서는 DeviceIoControl을 사용하여 수행할 수 있는 재분석 지점 작업에 대해 설명합니다.

작업(Operation) 설명
FSCTL_SET_REPARSE_POINT 호출 프로그램이 새 재분석 지점을 설정하거나 기존 재분석 지점을 수정할 수 있도록 허용합니다.
FSCTL_GET_REPARSE_POINT 기존 재분석 지점에 저장된 정보를 가져옵니다.
FSCTL_DELETE_REPARSE_POINT 기존 재분석 지점을 제거합니다.

재분석 지점을 수정하거나 가져오거나 삭제하는 경우 파일에 포함된 작업에서 동일한 재분석 태그를 지정해야 합니다. 그렇지 않으면 ERROR_REPARSE_TAG_MISMATCH 오류와 함께 작업이 실패합니다. 재분석 지점을 수정하거나 삭제하는 경우 파일에 포함된 작업에서도 재분석 GUID를 지정해야 합니다. 그렇지 않으면 ERROR_REPARSE_ATTRIBUTE_CONFLICT 오류와 함께 작업이 실패합니다.

파일 또는 디렉터리에 재분석 지점이 포함되어 있는지 확인하려면 GetFileAttributes 함수를 사용합니다. 파일 또는 디렉터리에 연결된 재분석 지점이 있는 경우, FILE_ATTRIBUTE_REPARSE_POINT 특성이 설정됩니다.

파일 또는 디렉터리에 대한 핸들이 아직 없을 때 기존 재분석 지점을 덮어쓰려면 FILE_FLAG_OPEN_REPARSE_POINT를 사용하여 CreateFile을 호출합니다. 이 플래그를 사용하면 해당 파일 시스템 필터가 설치되어 있고 제대로 작동하는지 여부에 관계없이 파일을 열 수 있습니다.