Condividi tramite


Funzione IoSetPartitionInformation (ntddk.h)

La routine IoSetPartitionInformation è obsoleta e viene fornita solo per supportare i driver esistenti. I nuovi driver devono usare IoSetPartitionInformationEx.

IoSetPartitionInformation imposta il tipo di partizione e il numero in una voce di tabella di partizione per il disco rappresentato da DeviceObject.

Sintassi

NTSTATUS IoSetPartitionInformation(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] ULONG          SectorSize,
  [in] ULONG          PartitionNumber,
  [in] ULONG          PartitionType
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo che rappresenta il dispositivo in cui deve essere impostato il tipo di partizione.

[in] SectorSize

Specifica le dimensioni, in byte, di settori sul disco.

[in] PartitionNumber

Specifica il numero di partizione nel dispositivo il cui tipo di partizione deve essere impostato.

[in] PartitionType

Specifica il tipo per la partizione. Per un elenco di alcuni dei tipi di partizione chiave, vedere PARTITION_INFORMATION.

Valore restituito

Se IoSetPartitionInformation restituisce STATUS_SUCCESS, il driver del disco aggiorna la nozione del tipo di partizione per questa partizione nell'estensione del dispositivo.

Commenti

IoSetPartitionInformation deve essere usato solo dai driver su disco. Altri driver devono usare invece la richiesta di I/O del disco IOCTL_DISK_SET_PARTITION_INFO .

Questa routine viene chiamata quando viene richiesto a un driver di dispositivo disco di impostare il tipo di partizione in una voce di tabella di partizione da una richiesta di IRP_MJ_DEVICE_CONTROL. Questa richiesta viene generalmente emessa dall'utilità di formato, che esegue funzioni di controllo I/O nella 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. Poiché le routine HAL sottolie IoSetPartitionInformation sono state sviluppate prima dell'implementazione del supporto del partizionamento dinamico, non distingueno tra l'ordinale di partizione (ovvero l'ordine di una partizione in un disco) e il numero di partizione (il numero di partizione assegnato a una partizione per identificarlo nel sistema). I driver devono chiamare IoSetPartitionInformation usando il numero ordinale della partizione e non il numero di partizione effettivo.

Questa routine è sincrona e deve essere chiamata 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 impostare il tipo di partizione per il dispositivo.

Questa routine opera sotto il presupposto che il numero di partizione passato dal driver del disco esista effettivamente.

Questa routine deve essere chiamata in IRQL = PASSIVE_LEVEL perché usa un oggetto evento kernel per sincronizzare il completamento di I/O nel dispositivo. L'evento non può essere impostato sullo stato Segnalato senza accodamento ed esecuzione della routine APC del sistema I/O speciale per il completamento di I/O.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)
Regole di conformità DDI HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Vedi anche

IoReadPartitionTable

IoSetPartitionInformationEx

IoWritePartitionTable