Fungsi IoReadPartitionTable (ntddk.h)

Rutinitas IoReadPartitionTableusang dan hanya disediakan untuk mendukung driver yang ada. Driver baru harus menggunakan IoReadPartitionTableEx. IoReadPartitionTable membaca daftar partisi pada disk yang memiliki ukuran sektor tertentu dan membuat entri dalam daftar partisi untuk setiap partisi yang dikenali.

Sintaks

NTSTATUS IoReadPartitionTable(
  [in]  PDEVICE_OBJECT            DeviceObject,
  [in]  ULONG                     SectorSize,
  [in]  BOOLEAN                   ReturnRecognizedPartitions,
  [out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);

Parameter

[in] DeviceObject

Arahkan ke objek perangkat untuk disk yang partisinya akan dibaca.

[in] SectorSize

Menentukan ukuran sektor pada disk.

[in] ReturnRecognizedPartitions

Menunjukkan apakah hanya partisi yang dikenali atau semua entri partisi yang harus dikembalikan.

[out] PartitionBuffer

Penunjuk ke alamat yang tidak diinisialisasi. Jika berhasil, IoReadPartitionTable mengalokasikan memori untuk buffer ini dari kumpulan yang tidak disebarkan dan mengembalikan informasi tata letak drive di dalamnya.

Nilai kembali

Rutinitas ini mengembalikan nilai STATUS_SUCCESS jika setidaknya satu tabel sektor dibaca. Jika tidak, ia mengembalikan status kesalahan dan mengatur penunjuk di PartitionBuffer ke NULL.

Keterangan

IoReadPartitionTable hanya boleh digunakan oleh driver disk. Driver lain harus menggunakan permintaan I/O disk IOCTL_DISK_GET_DRIVE_LAYOUT sebagai gantinya.

Driver perangkat disk memanggil rutinitas ini selama inisialisasi driver.

Pemanggil bertanggung jawab untuk membatalkan alokasi PartitionBuffer yang dialokasikan oleh rutinitas ini dengan ExFreePool.

Algoritma yang digunakan oleh rutinitas ini ditentukan oleh nilai Boolean ReturnRecognizedPartitions:

  • Baca setiap tabel partisi dan, untuk setiap partisi yang valid dan dikenali yang ditemukan, isi elemen dalam array entri PARTITION_INFORMATION . Array entri informasi partisi ditujukkan oleh anggota PartitionEntry dari struktur DRIVE_LAYOUT_INFORMATION . Struktur DRIVE_LAYOUT_INFORMATION ditemukan di lokasi yang ditujukkan oleh PartitionBuffer. Partisi yang diperluas terletak untuk menemukan tabel partisi lain, tetapi tidak ada entri yang dibuat untuk mereka.
Baca setiap tabel partisi dan, untuk setiap entri, isi entri informasi partisi. Partisi yang diperluas terletak untuk menemukan setiap partisi pada disk; entri dibangun untuk ini juga.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ntddk.h (termasuk Ntddk.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Lihat juga

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_SET_DRIVE_LAYOUT

IoSetPartitionInformation

IoWritePartitionTable