Funzione IoWritePartitionTable (ntddk.h)
La routine IoWritePartitionTable è obsoleta e viene fornita solo per supportare i driver esistenti. I nuovi driver devono usare IoWritePartitionTableEx.
IoWritePartitionTable scrive tabelle di partizione dalle voci nel buffer dell'elenco di partizioni per ogni partizione nel disco rappresentato dall'oggetto dispositivo specificato.
Sintassi
NTSTATUS IoWritePartitionTable(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] ULONG SectorsPerTrack,
[in] ULONG NumberOfHeads,
[in] _DRIVE_LAYOUT_INFORMATION *PartitionBuffer
);
Parametri
[in] DeviceObject
Puntatore all'oggetto dispositivo che rappresenta il disco le cui tabelle di partizione devono essere scritte.
[in] SectorSize
Specifica le dimensioni in byte di settori nel dispositivo.
[in] SectorsPerTrack
Specifica le dimensioni della traccia nel dispositivo.
[in] NumberOfHeads
Specifica il numero di tracce per ogni cilindro.
[in] PartitionBuffer
Puntatore al buffer di layout dell'unità contenente le voci dell'elenco di partizioni. Per informazioni più dettagliate, vedere DRIVE_LAYOUT_INFORMATION.
Valore restituito
IoWritePartitionTablo restituisce un codice di stato di STATUS_SUCCESS se tutte le scritture sono state completate senza errori. In caso di errore, i codici di errore restituiti da IoWritePartitionTable potrebbero includere, ma non sono limitati a, l'elenco seguente:
Codice restituito | Descrizione |
---|---|
STATUS_DEVICE_NOT_READY | Indica un errore durante la lettura della geometria del disco corretta. |
STATUS_INSUFFICIENT_RESOURCES | Indica un errore di allocazione delle risorse necessarie,ad esempio memoria heap, IRP e così via. |
STATUS_UNSUCCESSFUL | Indica che il settore zero non ha la firma del disco MBR prevista. |
Commenti
IoWritePartitionTable deve essere usato solo dai driver del disco. Altri driver devono usare invece la richiesta di I/O del disco IOCTL_DISK_SET_DRIVE_LAYOUT .
IoWritePartitionTable viene chiamato quando viene richiesto a un driver di dispositivo disco di impostare il tipo di partizione in una voce di tabella di partizione o per suddividere il disco da una richiesta di IRP_MJ_DEVICE_CONTROL. La richiesta di controllo del dispositivo viene generalmente rilasciata dall'utilità di formato, che esegue funzioni di controllo I/O nelle partizioni e nei dischi del computer.
Per reimpostare un tipo di partizione, il driver passa un puntatore all'oggetto dispositivo che rappresenta il disco fisico e il numero della partizione associata all'oggetto dispositivo aperto dall'utilità di formato. Quando un disco deve essere ripartito in modo dinamico, il driver del disco deve eliminare il set di oggetti dispositivo che rappresentano le partizioni del disco correnti e creare un nuovo set di oggetti dispositivo che rappresentano le nuove partizioni sul disco.
Le applicazioni che creano ed eliminano partizioni e richiedono descrizioni complete del sistema devono chiamare IoReadPartitionTable con ReturnRecognizedPartitions impostata su FALSE. La struttura del layout dell'unità può essere modificata dall'utilità di formato di sistema per riflettere una nuova configurazione del disco.
IoWritePartitionTable è sincrona. Deve essere chiamato dalla routine Dispatch del driver del disco o da un thread del driver. Pertanto, tutti i thread utente e file system devono essere preparati per immettere uno stato di attesa durante l'emissione della richiesta di controllo del dispositivo per reimpostare i tipi di partizione per il dispositivo.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ntddk.h (include Ntddk.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |