Condividi tramite


Funzione IoWritePartitionTableEx (ntddk.h)

La routine IoWritePartitionTableEx scrive le tabelle di partizione dalle voci nel buffer dell'elenco di partizioni per ogni partizione nel disco rappresentato dall'oggetto dispositivo specificato.

Sintassi

NTSTATUS IoWritePartitionTableEx(
  [in] PDEVICE_OBJECT               DeviceObject,
       _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo che rappresenta il disco le cui tabelle di partizione devono essere scritte.

DriveLayout

Puntatore al buffer di layout dell'unità che contiene le voci dell'elenco di partizioni. Per informazioni più dettagliate, vedere DRIVE_LAYOUT_INFORMATION_EX.

Valore restituito

IoWritePartitionTableEx 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 IoWritePartitionTableEx possono includere, ma non solo, 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

IoWritePartitionTableEx sostituisce la routine obsoleta IoWritePartitionTable. A differenza della routine precedente, può scrivere in tabelle di partizione GUID e tabelle di partizione record di avvio master.

IoWritePartitionTableEx 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_EX .

Quando un driver di dispositivo su disco riceve una richiesta di IRP_MJ_DEVICE_CONTROL per impostare il tipo di partizione in una voce di tabella di partizione o per ripartizionare il disco, deve chiamare IoWritePartitionTableEx. La richiesta di controllo del dispositivo viene in genere rilasciata dall'utilità di formato, che esegue funzioni di controllo di I/O nelle partizioni e nei dischi nel 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 ripartizionato 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.

Per non creare o eliminare partizioni, è necessario ottenere una descrizione completa del sistema tramite una chiamata a IoReadPartitionTableEx. La struttura del layout dell'unità può essere modificata dall'utilità di formato di sistema per riflettere una nuova configurazione del disco.

IoWritePartitionTableEx è sincrono. 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 entrare in uno stato di attesa quando si emette la 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 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

IoCreateDevice

IoReadPartitionTableEx

IoSetPartitionInformationEx