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 Multisectorheader 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 für den Benutzer praktisch.

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.

Hinweise

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

Diese Strukturdefinition ist nur für Hauptversion 3 und Nebenversion 0 oder 1 gültig, wie von FSCTL _ GET _ NTFS _ VOLUME _ DATAgemeldet.

Der Multisectorheader und das Updatesequenzarray ermöglichen die Erkennung unvollständiger Multisectorübertragungen für Geräte, die entweder eine physische Sektorgröße aufweisen, die größer oder gleich dem Sequenznummernschritt (512) ist oder die keine Sektoren in die andere Reihenfolge übertragen. Wenn ein Gerät vorhanden ist, das eine Sektorgröße aufweist, die kleiner ist als die Sequenznummernschritte, und es manchmal Sektoren außerhalb der Reihenfolge überträgt, bietet das Updatesequenzarray keine absolute Erkennung unvollständiger Übertragungen. Der Schritt der Sequenznummer ist auf eine kleine Zahl festgelegt, um absoluten Schutz für alle bekannten Festplatten bereitzustellen. Sie ist nicht kleiner festgelegt, oder es kann zu übermäßigem Laufzeit- oder Speicherplatzaufwand kommen.

Das Updatesequenzarray besteht aus einem Array von n USHORT-Werten, wobei n die Größe der geschützten Struktur dividiert durch den Sequenznummernschritt ist. Das erste Wort enthält die Updatesequenznummer. Dies ist ein zyklischer Zähler, der angibt, wie oft die enthaltende Struktur auf den Datenträger geschrieben wurde. Als Nächstes folgen die n gespeicherten USHORT-Werte, die beim letzten Schreiben der enthaltenden Struktur auf den Datenträger durch die Updatesequenznummer überschrieben wurden.

Jedes Mal, wenn die geschützte Struktur auf den Datenträger geschrieben wird, wird das letzte Wort in jedem Sequenznummernschritt an der entsprechenden Position im Sequenznummernarray gespeichert und mit der nächsten Updatesequenznummer ü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 Leseläufen 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 Multisectorü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 aufgrund seiner Variablengröße geschützt wird. Der Benutzer muss sicherstellen, dass der richtige Speicherplatz für die enthaltende Struktur reserviert ist: (Größe der Struktur / 512 + 1) * sizeof(USHORT).

Weitere Informationen

Masterdateitabelle