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