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.
Leggere ogni tabella di partizione e, per ogni voce, compilare una voce di informazioni sulla partizione. Le partizioni estese si trovano per trovare ogni partizione sul disco; le voci vengono compilate anche per queste 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)

Vedi anche

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_SET_DRIVE_LAYOUT

IoSetPartitionInformation

IoWritePartitionTable