저널 식별자 변경 사용
NTFS 파일 시스템은 서명되지 않은 64비트 식별자를 각 변경 저널과 연결합니다. 저널은 생성될 때 이 식별자를 사용하여 스탬프가 찍됩니다. 파일 시스템은 기존 업데이트 시퀀스 번호(USN) 레코드가 사용 불가능하거나 사용할 수 없을 때, 새로운 식별자로 저널에 스탬프를 찍습니다.
예를 들어 NTFS 파일 시스템은 볼륨이 한 버전의 NTFS에서 다른 버전으로 이동한 다음 다시 이동할 때 새 식별자를 사용하여 변경 저널을 다시 가져옵니다. 이러한 이동은 이중 부팅 환경에서 또는 이동식 미디어로 작업할 때 발생할 수 있습니다.
지정된 볼륨에서 현재 변경 저널의 식별자를 가져오려면 FSCTL_QUERY_USN_JOURNAL 제어 코드를 사용합니다. 이 작업 및 기타 모든 변경 저널 작업을 수행하려면 시스템 관리자 권한이 있어야 합니다. 즉, 관리자 그룹의 구성원이어야 합니다.
관리자가 변경 저널을 삭제하고 다시 만들 때(예: 현재 USN 값이 가능한 최대 USN 값에 가까워지면 USN 값이 0에서 다시 시작됩니다.) NTFS 파일 시스템에서 저널을 다시 만드는 대신 새 식별자를 사용하여 저널을 스탬프하면 USN을 0으로 다시 설정하지 않고 현재 USN에서 계속됩니다. 모든 경우에 기존의 USN은 향후 USN보다 작습니다.
특정 레코드 집합에 대한 정보가 필요한 경우 FSCTL_QUERY_USN_JOURNAL 제어 코드를 사용하여 변경 저널 식별자를 가져옵니다. 그런 다음 FSCTL_READ_USN_JOURNAL 제어 코드를 사용하여 관심 있는 저널 레코드를 읽습니다. NTFS 파일 시스템은 식별자가 지정한 업무 일지에 유효한 레코드만 반환합니다.
애플리케이션에서 저널을 읽으려면 레코드들의 USN과 식별자가 모두 필요합니다. 이 요구 사항은 애플리케이션이 파일의 기존 레코드를 무시해야 하는 경우와 동일한 볼륨에 대한 저널의 이전 인스턴스에서 레코드가 작성된 경우에 대한 무결성 검사를 제공합니다.
관심 있는 레코드를 가져오려면 가장 오래된 레코드(즉, USN이 가장 낮은 레코드)에서 시작하여 관심 있는 첫 번째 레코드를 찾을 때까지 검색해야 합니다.