Freigeben über


MULTI_SECTOR_HEADER-Struktur

[Diese Struktur ist nur für Version 3 von NTFS-Volumes gültig; sie kann in zukünftigen Versionen geändert werden.]

Stellt den Multisektorenheader dar.

Syntax

typedef struct _MULTI_SECTOR_HEADER {
  UCHAR  Signature[4];
  USHORT UpdateSequenceArrayOffset;
  USHORT UpdateSequenceArraySize;
} MULTI_SECTOR_HEADER, *PMULTI_SECTOR_HEADER;

Member

Signature

Die Signatur. Dieser Wert ist ein Vorteil für den Benutzer.

UpdateSequenceArrayOffset

Der Offset zum Updatesequenzarray vom Anfang dieser Struktur. Das Updatesequenzarray muss vor dem letzten USHORT-Wert im ersten Sektor enden.

UpdateSequenceArraySize

Die Größe des Updatesequenzarrays in Bytes.

Bemerkungen

Beachten Sie, dass für diese Struktur keine zugeordnete Headerdatei vorhanden ist.

Diese Strukturdefinition gilt nur für Hauptversion 3 und Nebenversion 0 oder 1, wie von FSCTL_GET_NTFS_VOLUME_DATA gemeldet.

Der Multisektorenheader und das Updatesequenzarray ermöglichen die Erkennung unvollständiger multisektorenübergreifender Übertragungen für Geräte, die entweder eine physische Sektorgröße haben, die größer oder gleich der Sequenznummer stride (512) ist oder die Sektoren nicht außerhalb der Reihenfolge übertragen. Wenn ein Gerät vorhanden ist, das eine Sektorgröße hat, die kleiner als die Sequenznummer stride ist, und manchmal sektoren außerhalb der Reihenfolge überträgt, bietet das Updatesequenzarray keine absolute Erkennung unvollständiger Übertragungen. Der Sequenznummernschritt ist auf eine klein genug festgelegte Zahl, um absoluten Schutz für alle bekannten Festplatten zu bieten. Es ist nicht kleiner festgelegt, oder es kann zu einer übermäßigen Laufzeit oder zu einem übermäßigen Speicherplatzaufwand kommen.

Das Updatesequenzarray besteht aus einem Array von nUSHORT-Werten , wobei n die Größe der zu schützenden Struktur dividiert durch die Sequenznummer stride ist. Das erste Wort enthält die Updatesequenznummer. Dies ist ein zyklischer Indikator dafür, wie oft die enthaltende Struktur auf den Datenträger geschrieben wurde. Als Nächstes werden die n gespeicherten USHORT-Werte angezeigt, die beim letzten Schreiben der enthaltenden Struktur auf den Datenträger von der Updatesequenznummer überschrieben wurden.

Jedes Mal, wenn die geschützte Struktur auf den Datenträger geschrieben werden soll, wird das letzte Wort in jedem Sequenznummernschritt an seiner jeweiligen Position im Sequenznummernarray gespeichert und dann mit der nächsten Aktualisierungssequenznummer überschrieben. Nach dem Schreiben oder beim Lesen der Struktur wird das gespeicherte Wort aus dem Sequenznummernarray an seiner tatsächlichen Position in der Struktur wiederhergestellt. Vor dem Wiederherstellen der gespeicherten Wörter bei Lesevorgängen werden alle Sequenznummern am Ende jedes Schritts mit der tatsächlichen Sequenznummer am Anfang des Arrays verglichen. Wenn einer dieser Vergleiche nicht gleich ist, wurde eine fehlgeschlagene Multisektorenübertragung erkannt.

Die Größe des Arrays wird durch die Größe der enthaltenden Struktur bestimmt. Das Updatesequenzarray sollte am Ende des Headers der Struktur enthalten sein, die es aufgrund seiner Variablengröße schützt. Der Benutzer muss sicherstellen, dass der richtige Platz für die enthaltende Struktur reserviert ist: (Größe der Struktur / 512 + 1) * sizeof (USHORT).

Siehe auch

Masterdateitabelle