Funzione IoReadPartitionTable (ntddk.h)
La routine IoReadPartitionTable è obsoleta e viene fornita solo per supportare i driver esistenti. I nuovi driver devono usare IoReadPartitionTableEx. IoReadPartitionTable legge un elenco di partizioni in un disco con dimensioni di settore specificate e crea una voce nell'elenco di partizioni per ogni partizione riconosciuta.
Sintassi
NTSTATUS IoReadPartitionTable(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] BOOLEAN ReturnRecognizedPartitions,
[out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);
Parametri
[in] DeviceObject
Puntatore all'oggetto dispositivo per il disco le cui partizioni devono essere lette.
[in] SectorSize
Specifica le dimensioni dei settori sul disco.
[in] ReturnRecognizedPartitions
Indica se devono essere restituite solo le partizioni riconosciute o tutte le voci di partizione.
[out] PartitionBuffer
Puntatore a un indirizzo non inizializzato. In caso di esito positivo, IoReadPartitionTable alloca la memoria per questo buffer dal pool non di paging e restituisce le informazioni sul layout dell'unità.
Valore restituito
Questa routine restituisce un valore di STATUS_SUCCESS se è stata letta almeno una tabella di settore. In caso contrario, restituisce uno stato di errore e imposta il puntatore in PartitionBuffer su NULL.
Osservazioni
i IoReadPartitionTable devono essere usati solo dai driver del disco. Altri driver devono usare invece la richiesta di I/O del disco IOCTL_DISK_GET_DRIVE_LAYOUT.
I driver di dispositivo del disco chiamano questa routine durante l'inizializzazione del driver.
È responsabilità del chiamante deallocare il PartitionBuffer allocato da questa routine con ExFreePool.
L'algoritmo usato da questa routine è determinato dal valore booleano ReturnRecognizedPartitions:
- Leggere ogni tabella di partizione e, per ogni partizione valida e riconosciuta trovata, compilare un elemento in una matrice di voci PARTITION_INFORMATION. La matrice di voci di informazioni sulla partizione fa riferimento al membro partitionEntry di una struttura di DRIVE_LAYOUT_INFORMATION. La struttura DRIVE_LAYOUT_INFORMATION si trova nella posizione a cui punta PartitionBuffer. Le partizioni estese si trovano per trovare altre tabelle di partizione, ma non vengono compilate voci.
Fabbisogno
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), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |