Condividi tramite


MULTI_SECTOR_HEADER struttura

[Questa struttura è valida solo per la versione 3 dei volumi NTFS; può essere modificata nelle versioni future.]

Rappresenta l'intestazione multisector.

Sintassi

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

Members

Firma

Firma. Questo valore è una comodità per l'utente.

UpdateSequenceArrayOffset

Offset della matrice della sequenza di aggiornamento, dall'inizio di questa struttura. La matrice di sequenza di aggiornamento deve terminare prima dell'ultimo valore USHORT nel primo settore.

UpdateSequenceArraySize

Dimensioni della matrice della sequenza di aggiornamento, in byte.

Commenti

Si noti che non esiste alcun file di intestazione associato per questa struttura.

Questa definizione di struttura è valida solo per la versione principale 3 e secondaria 0 o 1, come indicato da FSCTL_GET_NTFS_VOLUME_DATA.

L'intestazione multisector e la matrice di sequenza di aggiornamento forniscono il rilevamento dei trasferimenti multisector incompleti per i dispositivi con dimensioni del settore fisico maggiori o uguali al numero di sequenza (512) o che non trasferiscono i settori in ordine. Se esiste un dispositivo con dimensioni del settore inferiori al numero di sequenza stride e a volte trasferisce i settori all'ordine, la matrice della sequenza di aggiornamento non fornirà il rilevamento assoluto dei trasferimenti incompleti. Lo stride del numero di sequenza è impostato su un numero sufficiente per garantire una protezione assoluta per tutti i dischi rigidi noti. Non è impostata alcuna dimensione o potrebbe verificarsi un sovraccarico eccessivo del tempo di esecuzione o dello spazio.

La matrice di sequenza di aggiornamento è costituita da una matrice di valori nUSHORT , dove n è la dimensione della struttura protetta in base al numero di sequenza stride. La prima parola contiene il numero di sequenza di aggiornamento, ovvero un contatore ciclico del numero di volte in cui la struttura contenente è stata scritta su disco. Successivamente, i valori n salvati di USHORT sovrascritti dal numero di sequenza di aggiornamento l'ultima volta che la struttura contenente è stata scritta sul disco.

Ogni volta che la struttura protetta sta per essere scritta su disco, l'ultima parola in ogni sequenza numero stride viene salvata nella rispettiva posizione nella matrice del numero di sequenza, quindi viene sovrascritta con il numero di sequenza di aggiornamento successivo. Dopo la scrittura o ogni volta che la struttura viene letto, la parola salvata dalla matrice di numeri di sequenza viene ripristinata alla sua posizione effettiva nella struttura. Prima di ripristinare le parole salvate sulle letture, tutti i numeri di sequenza alla fine di ogni stride vengono confrontati con il numero di sequenza effettivo all'inizio della matrice. Se uno di questi confronti non è uguale, è stato rilevato un trasferimento multisector non riuscito.

Le dimensioni della matrice sono determinate dalle dimensioni della struttura contenente. La matrice della sequenza di aggiornamento deve essere inclusa alla fine dell'intestazione della struttura che protegge a causa delle dimensioni delle variabili. L'utente deve assicurarsi che lo spazio corretto sia riservato alla struttura contenente: (dimensioni della struttura / 512 + 1) * sizeof(USHORT).

Vedi anche

Tabella file master