Fungsi IoWritePartitionTable (ntddk.h)

Rutinitas IoWritePartitionTable sudah usang dan disediakan hanya untuk mendukung driver yang ada. Driver baru harus menggunakan IoWritePartitionTableEx.

IoWritePartitionTable menulis tabel partisi dari entri dalam buffer daftar partisi untuk setiap partisi pada disk yang diwakili oleh objek perangkat yang diberikan.

Sintaks

NTSTATUS IoWritePartitionTable(
  [in] PDEVICE_OBJECT            DeviceObject,
  [in] ULONG                     SectorSize,
  [in] ULONG                     SectorsPerTrack,
  [in] ULONG                     NumberOfHeads,
  [in] _DRIVE_LAYOUT_INFORMATION *PartitionBuffer
);

Parameter

[in] DeviceObject

Penunjuk ke objek perangkat yang mewakili disk yang tabel partisinya akan ditulis.

[in] SectorSize

Menentukan ukuran dalam byte sektor pada perangkat.

[in] SectorsPerTrack

Menentukan ukuran trek pada perangkat.

[in] NumberOfHeads

Menentukan jumlah trek per silinder.

[in] PartitionBuffer

Penunjuk ke buffer tata letak drive yang berisi entri daftar partisi. Untuk informasi selengkapnya, lihat DRIVE_LAYOUT_INFORMATION.

Nilai kembali

IoWritePartitionTablo mengembalikan kode status STATUS_SUCCESS jika semua penulisan selesai tanpa kesalahan. Jika terjadi kegagalan, kode kesalahan yang dikembalikan oleh IoWritePartitionTable mungkin menyertakan, tetapi tidak terbatas pada, daftar berikut:

Menampilkan kode Deskripsi
STATUS_DEVICE_NOT_READY Menunjukkan kegagalan membaca geometri disk yang benar.
STATUS_INSUFFICIENT_RESOURCES Menunjukkan kegagalan untuk mengalokasikan sumber daya yang diperlukan (misalnya, memori heap, IRP, dll.).
STATUS_UNSUCCESSFUL Menunjukkan bahwa sektor nol tidak memiliki tanda tangan disk MBR yang diharapkan.

Keterangan

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

IoWritePartitionTable dipanggil ketika driver perangkat disk diminta untuk mengatur jenis partisi dalam entri tabel partisi atau untuk mempartisi ulang disk dengan permintaan IRP_MJ_DEVICE_CONTROL. Permintaan kontrol perangkat umumnya dikeluarkan oleh utilitas format, yang melakukan fungsi kontrol I/O pada partisi dan disk di komputer.

Untuk mengatur ulang jenis partisi, driver meneruskan penunjuk ke objek perangkat yang mewakili disk fisik dan jumlah partisi yang terkait dengan objek perangkat yang telah dibuka utilitas format. Ketika disk akan dipartisi ulang secara dinamis, driver disk harus merobek sekumpulan objek perangkat yang mewakili partisi disk saat ini dan membuat sekumpulan objek perangkat baru yang mewakili partisi baru pada disk.

Aplikasi yang membuat dan menghapus partisi dan memerlukan deskripsi lengkap sistem harus memanggil IoReadPartitionTable dengan ReturnRecognizedPartitions diatur ke FALSE. Struktur tata letak drive dapat dimodifikasi oleh utilitas format sistem untuk mencerminkan konfigurasi baru disk.

IoWritePartitionTable sinkron. Ini harus dipanggil oleh rutinitas Pengiriman driver disk atau oleh utas driver. Dengan demikian, semua utas pengguna dan sistem file harus siap untuk memasuki status tunggu saat mengeluarkan permintaan kontrol perangkat untuk mengatur ulang jenis partisi untuk perangkat.

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

IoCreateDevice

IoReadPartitionTable

IoSetPartitionInformation