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