Condividi tramite


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.
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.

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)

Vedere anche

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_SET_DRIVE_LAYOUT

IoSetPartitionInformation

IoWritePartitionTable