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 della 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, dei 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 il concetto del tipo di partizione per questa partizione nell'estensione del dispositivo.

Osservazioni

IoSetPartitionInformation devono essere usati solo dai driver del 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 in genere generata 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 sottostanti IoSetPartitionInformation sono state sviluppate prima dell'implementazione del supporto del partizionamento dinamico, non distinguono tra il ordinale di partizione (ovvero l'ordine di una partizione su 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 numero 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 a entrare in uno stato di attesa quando si emette la richiesta di controllo del dispositivo per impostare il tipo di partizione per il dispositivo.

Questa routine si basa sul 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 Signaled senza accodare ed eseguire la routine APC del kernel speciale del sistema I/O per il completamento di I/O.

Fabbisogno

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 HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Vedere anche

IoReadPartitionTable

IoSetPartitionInformationEx

IoWritePartitionTable