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 del 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 partizioni riconosciute o tutte le voci di partizione.
[out] PartitionBuffer
Puntatore a un indirizzo non inizializzato. Se ha esito positivo, IoReadPartitionTable alloca la memoria per questo buffer dal pool non con pagine e restituisce le informazioni sul layout dell'unità.
Valore restituito
Questa routine restituisce un valore di STATUS_SUCCESS se è stata letto almeno una tabella del settore. In caso contrario, restituisce uno stato di errore e imposta il puntatore in PartitionBuffer su NULL.
Commenti
IoReadPartitionTable deve essere usato solo dai driver del disco. Altri driver devono usare invece la richiesta di I/O del disco IOCTL_DISK_GET_DRIVE_LAYOUT .
I driver del dispositivo 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, compilare un elemento in una matrice di voci PARTITION_INFORMATION . La matrice di voci delle informazioni di partizione è puntata dal membro PartitionEntry di una struttura DRIVE_LAYOUT_INFORMATION . La struttura DRIVE_LAYOUT_INFORMATION viene trovata nella posizione a cui punta PartitionBuffer. Le partizioni estese si trovano per trovare altre tabelle di partizione, ma non vengono compilate voci.
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) |