MULTI_SECTOR_HEADER 구조체
[이 구조는 NTFS 볼륨 버전 3에만 유효하며 이후 버전에서 변경될 수 있습니다.]
다중 벡터 헤더를 나타냅니다.
구문
typedef struct _MULTI_SECTOR_HEADER {
UCHAR Signature[4];
USHORT UpdateSequenceArrayOffset;
USHORT UpdateSequenceArraySize;
} MULTI_SECTOR_HEADER, *PMULTI_SECTOR_HEADER;
멤버
-
서명
-
서명입니다. 이 값은 사용자에게 편리합니다.
-
UpdateSequenceArrayOffset
-
이 구조체의 시작부터 업데이트 시퀀스 배열에 대한 오프셋입니다. 업데이트 시퀀스 배열은 첫 번째 섹터의 마지막 USHORT 값 이전에 끝나야 합니다.
-
UpdateSequenceArraySize
-
업데이트 시퀀스 배열의 크기(바이트)입니다.
설명
이 구조체에 연결된 헤더 파일이 없습니다.
이 구조 정의는 FSCTL_GET_NTFS_VOLUME_DATA 보고한 주 버전 3 및 부 버전 0 또는 1에만 유효합니다.
다중 벡터 헤더 및 업데이트 시퀀스 배열은 물리적 섹터 크기가 시퀀스 번호 보폭(512)보다 크거나 같거나 순서대로 섹터를 전송하지 않는 디바이스에 대한 불완전한 다중 벡터 전송 검색을 제공합니다. 시퀀스 번호 보폭보다 작은 섹터 크기가 있는 디바이스가 있고 경우에 따라 섹터를 순서대로 전송하는 경우 업데이트 시퀀스 배열은 불완전한 전송에 대한 절대 검색을 제공하지 않습니다. 시퀀스 번호 보폭은 알려진 모든 하드 디스크에 대한 절대 보호를 제공하기에 충분한 수로 설정됩니다. 더 작게 설정되지 않았거나 과도한 런타임 또는 공간 오버헤드가 있을 수 있습니다.
업데이트 시퀀스 배열은 nUSHORT 값의 배열로 구성됩니다. 여기서 n 은 보호되는 구조체의 크기를 시퀀스 번호 보폭으로 나눕니다. 첫 번째 단어에는 포함된 구조가 디스크에 기록된 횟수의 순환 카운터인 업데이트 시퀀스 번호가 포함되어 있습니다. 다음은 포함된 구조체가 디스크에 마지막으로 기록되었을 때 업데이트 시퀀스 번호로 덮어쓴 저장된 NUSHORT 값입니다.
보호된 구조체가 디스크에 기록될 때마다 각 시퀀스 번호 보폭의 마지막 단어가 시퀀스 번호 배열의 해당 위치에 저장되고 다음 업데이트 시퀀스 번호로 덮어씁니다. 쓰기 후 또는 구조체를 읽을 때마다 시퀀스 번호 배열의 저장된 단어가 구조체의 실제 위치로 복원됩니다. 읽기에 저장된 단어를 복원하기 전에 각 보폭의 끝에 있는 모든 시퀀스 번호가 배열의 시작 부분에 있는 실제 시퀀스 번호와 비교됩니다. 이러한 비교가 같지 않으면 실패한 다중 벡터 전송이 검색되었습니다.
배열의 크기는 포함하는 구조체의 크기에 따라 결정됩니다. 업데이트 시퀀스 배열은 변수 크기 때문에 보호 중인 구조체의 헤더 끝에 포함되어야 합니다. 사용자는 올바른 공간이 포함된 구조체(구조체 크기/ 512 + 1) * sizeof(USHORT)에 예약되어 있는지 확인해야 합니다.
추가 정보