структура 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
-
Размер массива последовательности обновления в байтах.
Комментарии
Обратите внимание, что для этой структуры нет связанного файла заголовка.
Это определение структуры допустимо только для основной версии 3 и дополнительной версии 0 или 1, как сообщает FSCTL_GET_NTFS_VOLUME_DATA.
Многосекторный заголовок и массив последовательностей обновления обеспечивают обнаружение неполной передачи нескольких секторов для устройств, размер физического сектора которых больше или равен шагу порядкового номера (512) или которые не передают секторы из строя. Если устройство имеет размер сектора меньше шага порядкового номера и иногда переводит секторы из строя, массив последовательности обновления не обеспечит абсолютного обнаружения неполных передач. Шаг последовательного номера имеет достаточно малое значение, чтобы обеспечить абсолютную защиту для всех известных жестких дисков. Он не имеет меньшего размера, или могут возникнуть чрезмерные затраты на время выполнения или пространство.
Массив последовательности обновления состоит из массива n значений USHORT, где n — это размер защищаемой структуры, разделенный на шаг порядкового номера. Первое слово содержит порядковый номер обновления, который является циклическим счетчиком количества записей содержащей структуры на диск. Далее приведены n сохраненных значений USHORT , которые были перезаписаны порядковый номер обновления при последней записи содержащей структуры на диск.
Каждый раз, когда защищенная структура будет записана на диск, последнее слово в каждом шаге порядкового номера сохраняется в соответствующей позиции в массиве порядкового номера, а затем перезаписывается следующим порядковый номер обновления. После записи или при чтении структуры сохраненное слово из массива порядкового номера восстанавливается до фактического положения в структуре. Перед восстановлением сохраненных слов при чтении все порядковые номера в конце каждого шага сравниваются с фактическим порядковый номер в начале массива. Если какое-либо из этих сравнений не равно, то обнаружена неудачная многосекторная передача.
Размер массива определяется размером содержащей структуры. Массив последовательности обновления должен быть включен в конец заголовка структуры, которая защищается из-за его размера переменной. Пользователь должен убедиться, что для содержащей структуры зарезервировано правильное пространство: (размер структуры / 512 + 1) * sizeof(USHORT).
См. также раздел