0xC9 Pemeriksaan Bug: DRIVER_VERIFIER_IOMANAGER_VIOLATION

Pemeriksaan bug DRIVER_VERIFIER_IOMANAGER_VIOLATION memiliki nilai 0x000000C9. Ini adalah kode pemeriksaan bug untuk semua pelanggaran Verifikasi I/O Driver Verifier.

Penting

Artikel ini untuk programmer. Jika Anda adalah pelanggan yang telah menerima kode kesalahan layar biru saat menggunakan komputer Anda, lihat Memecahkan masalah kesalahan layar biru.

Parameter DRIVER_VERIFIER_IOMANAGER_VIOLATION

Ketika Pemverifikasi Driver aktif dan Verifikasi I/O dipilih, berbagai pelanggaran I/O akan menyebabkan pemeriksaan bug ini dikeluarkan. Parameter 1 mengidentifikasi jenis pelanggaran.

Parameter 1 Parameter 2 Parameter 3 Parameter 4 Penyebab Kesalahan

0x01

Alamat IRP yang dibebaskan

0

0

Driver mencoba membebaskan objek yang tipenya tidak IO_TYPE_IRP.

0x02

Alamat IRP yang dibebaskan

0

0

Driver mencoba membebaskan IRP yang masih terkait dengan utas.

0x03

Alamat IRP yang dikirim

0

0

Driver melewati IoCallDriver Tipe IRP yang tidak sama dengan IRP_TYPE.

0x04

Alamat objek perangkat

0

0

Driver melewati IoCallDriver objek perangkat yang tidak valid.

0x05

Alamat objek perangkat yang terkait dengan driver yang menyinggung

IRQL sebelum IoCallDriver

IRQL setelah IoCallDriver

IRQL berubah selama panggilan ke rutinitas pengiriman driver.

0x06

Status IRP

Alamat IRP sedang diselesaikan

0

Driver bernama IoCompleteRequest dengan status ditandai sebagai tertunda (atau sama dengan -1).

0x07

Alamat rutinitas pembatalan

Alamat IRP sedang diselesaikan

0

Driver bernama IoCompleteRequest saat rutinitas pembatalannya masih ditetapkan.

0x08

Alamat objek perangkat

Kode fungsi utama IRP

Kode status pengecualian

Driver melewati IoBuildAsynchronousFsdRequest buffer yang tidak valid.

0x09

Alamat objek perangkat

Kode kontrol I/O

Kode status pengecualian

Driver melewati IoBuildDeviceIoControlRequest buffer yang tidak valid.

0x10

IRQL saat ini

Telah dipesan

Telah dipesan

IoCallDriver dipanggil di atas DISPATCH_LEVEL.

0x11

Alamat rutin pengiriman I/O cepat driver

IRQL sebelum memanggil rutinitas pengiriman driver

IRQL saat ini

IoCallDriver dipanggil di atas DISPATCH_LEVEL.

0x12

Alamat rutin pengiriman driver

IRQL sebelum memanggil rutinitas pengiriman driver

IRQL saat ini

IoCallDriver dipanggil di atas DISPATCH_LEVEL.

0x0A

Alamat objek perangkat

0

0

Driver melewati IoInitializeTimer objek perangkat dengan timer yang sudah diinisialisasi.

0x0C

Alamat blok status I/O

0

0

Driver melewati blok status I/O ke IRP, tetapi blok ini dialokasikan pada tumpukan yang telah melampaui titik tersebut.

0x0D

Alamat objek peristiwa pengguna

0

0

Driver meneruskan peristiwa pengguna ke IRP, tetapi kejadian ini dialokasikan pada tumpukan yang telah melampaui titik tersebut.

0x0E

IRQL saat ini

Alamat IRP

0

Driver bernama IoCompleteRequest dengan IRQL > DISPATCH_LEVEL.

0x0F

Alamat objek perangkat tempat IRP dikirim

Penunjuk ke IRP

Penunjuk ke objek file

Driver mengirim permintaan buat dengan objek file yang telah ditutup, atau pembukaannya dibatalkan.

Selain kesalahan yang disebutkan dalam tabel sebelumnya, ada sejumlah kesalahan Verifikasi I/O yang akan menyebabkan Driver Verifier menghentikan sistem, tetapi yang sebenarnya bukan pemeriksaan bug.

Kesalahan ini menyebabkan pesan ditampilkan di layar biru, dalam file crash dump, dan dalam debugger kernel. Pesan-pesan ini akan muncul secara berbeda di masing-masing lokasi ini. Ketika kesalahan ini terjadi, kode pemeriksaan bug heksadesimal 0xC9 dan string pemeriksaan bug DRIVER_VERIFIER_IOMANAGER_VIOLATION tidak muncul di layar biru atau di debugger, meskipun mereka akan muncul dalam file crash dump.

Pada layar biru, data berikut akan ditampilkan:

  • Pesan KESALAHAN VERIFIKASI SISTEM IO.

  • Pesan WDM DRIVER ERRORXXX, di mana XXX adalah kode heksadesimal yang mewakili kesalahan tertentu. (Lihat tabel di bawah ini untuk daftar kode kesalahan I/O dan maknanya.)

  • Nama driver yang menyebabkan kesalahan.

  • Biasanya, alamat dalam kode driver tempat kesalahan terdeteksi (Parameter 2).

Jika crash dump mode kernel telah diaktifkan, informasi berikut akan muncul di file crash dump:

  • Pesan BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).

  • Kode kesalahan I/O heksadesimal. (Lihat tabel di bawah ini untuk daftar kode kesalahan I/O dan maknanya.)

  • Biasanya, alamat dalam kode driver tempat kesalahan terdeteksi (Parameter 2).

Jika debugger kernel dilampirkan ke sistem yang telah menyebabkan pelanggaran ini, informasi berikut akan dikirim ke debugger:

  • Pesan KESALAHAN DRIVER WDM, bersama dengan penilaian tingkat keparahan kesalahan.

  • Nama driver yang menyebabkan kesalahan.

  • String deskriptif yang menjelaskan penyebab kesalahan ini. Sering kali informasi tambahan diteruskan, seperti penunjuk ke IRP atau penunjuk ke objek perangkat atau informasi IRQL. (Lihat tabel di bawah ini untuk daftar string deskriptif ini dan informasi tambahan apa yang ditentukan.)

  • Kueri untuk tindakan lebih lanjut. Respons yang mungkin adalah b (putus), i (abaikan), z (zap), r (hapus), atau d (nonaktifkan). Menginstruksikan sistem operasi untuk melanjutkan memungkinkan Anda untuk melihat apa yang akan terjadi "down the line" jika kesalahan ini tidak terjadi. Tentu saja, ini sering kali akan menyebabkan pemeriksaan bug tambahan. Opsi "zap" benar-benar akan menghapus titik henti yang menyebabkan kesalahan ini ditemukan.

Catatan Tidak ada pemeriksaan bug lain yang dapat diabaikan dengan cara ini. Hanya kesalahan Verifikasi I/O semacam ini yang dapat diabaikan, dan bahkan kesalahan ini hanya dapat diabaikan jika debugger kernel terpasang.

Tabel berikut ini mencantumkan kesalahan Verifikasi I/O yang bisa muncul.

Kode Kesalahan I/O Tingkat keparahan Penyebab Kesalahan

0x200

Tidak dikenal

Kode ini mencakup semua kesalahan Verifikasi I/O yang tidak diketahui.

0x201

Kesalahan fatal

Perangkat menghapus dirinya sendiri sementara ada perangkat lain di bawahnya di tumpukan driver. Ini mungkin karena penelepon lupa memanggil IoDetachDevice terlebih dahulu, atau driver yang lebih rendah mungkin telah salah menghapus dirinya sendiri.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

0x202

Kesalahan fatal

Pengandar mencoba melepaskan dari objek perangkat yang tidak melekat pada apa pun. Ini dapat terjadi jika pencopotan dipanggil dua kali pada objek perangkat yang sama.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat objek perangkat.

0x203

Kesalahan fatal

Driver telah memanggil IoCallDriver tanpa mengatur rutinitas pembatalan di IRP ke NULL.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x204

Kesalahan fatal

Penelepon telah melewati NULL sebagai objek perangkat. Ini fatal.

Param 2 - Dicadangkan

Param 3 - Dicadangkan

0x205

Kesalahan fatal

Penelepon sedang meneruskan IRP yang saat ini diantrekan di bawahnya. Runtime integrasi penanganan kode yang mengembalikan STATUS_PENDING di driver ini tampaknya rusak.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x206

Kesalahan fatal

Penelepon salah meneruskan IRP (bidang kontrol tidak di-nol). Driver harus menggunakan IoCopyCurrentIrpStackLocationToNext atau IoSkipCurrentIrpStackLocation.

Param 2 - Dicadangkan

Param 3 - Dicadangkan

0x207

Kesalahan fatal

Pemanggil telah menyalin tumpukan secara manual dan secara tidak sengaja menyalin rutinitas penyelesaian lapisan atas. Driver harus menggunakan IoCopyCurrentIrpStackLocationToNext.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x208

Kesalahan fatal

IRP ini akan kehabisan lokasi tumpukan. Seseorang mungkin telah meneruskan IRP ini dari tumpukan lain.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x209

Kesalahan fatal

Pemanggil sedang menyelesaikan IRP yang saat ini diantrekan di bawahnya. Runtime integrasi penanganan kode yang mengembalikan STATUS_PENDING di driver ini tampaknya rusak.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x20A

Kesalahan fatal

Penelepon IoFreeIrp membebaskan IRP yang masih digunakan.

Param 2 - Dicadangkan

Param 3 - Dicadangkan

0x20B

Kesalahan fatal

Penelepon IoFreeIrp membebaskan IRP yang masih digunakan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x20C

Kesalahan fatal

Penelepon IoFreeIrp membebaskan IRP yang masih mengantre terhadap utas.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x20D

Kesalahan fatal

Penelepon IoInitializeIrp telah melewati IRP yang dialokasikan dengan IoAllocateIrp. Ini ilegal dan tidak perlu, dan telah menyebabkan kebocoran kuota. Periksa dokumentasi untuk IoReuseIrp jika IRP ini sedang didaur ulang.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x20E

Kesalahan non-fatal

IRP PNP memiliki status yang tidak valid. (Setiap IRP PNP harus memiliki statusnya diinisialisasi ke STATUS_NOT_SUPPORTED.)

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x20F

Kesalahan non-fatal

Power IRP memiliki status yang tidak valid. (Setiap Power IRP harus memiliki statusnya diinisialisasi ke STATUS_NOT_SUPPORTED.)

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x210

Kesalahan non-fatal

IRP WMI memiliki status tidak valid. (Setiap IRP WMI harus memiliki status yang diinisialisasi ke STATUS_NOT_SUPPORTED.)

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x211

Kesalahan non-fatal

Penelepon telah meneruskan IRP saat melewati objek perangkat di tumpukan. Pemanggil mungkin mengirim IRP ke PDO alih-alih ke perangkat yang dikembalikan oleh IoAttachDeviceToDeviceStack.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x212

Kesalahan non-fatal

Pemanggil telah dibuang atau belum menyalin tumpukan IRP dengan benar.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x213

Kesalahan non-fatal

Pemanggil telah mengubah bidang status IRP yang tidak dipahaminya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x214

Kesalahan non-fatal

Penelepon telah mengubah bidang informasi IRP yang tidak dipahaminya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x215

Kesalahan non-fatal

Status IRP non-STATUS_NOT_SUPPORTED yang tidak berhasil untuk IRP_MJ_PNP sedang diteruskan ke tumpukan. Runtime integrasi PNP yang gagal harus diselesaikan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x216

Kesalahan non-fatal

Status IRP_MJ_PNP yang ditetapkan sebelumnya telah dikonversi ke STATUS_NOT_SUPPORTED. Status kegagalan ini dicadangkan untuk digunakan oleh sistem operasi. Driver tidak dapat gagal IRP PnP dengan nilai ini.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x217

Kesalahan non-fatal

Driver belum menangani IRP yang diperlukan. Driver harus memperbarui status IRP untuk menunjukkan apakah telah ditangani atau belum.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x218

Kesalahan non-fatal

Driver telah merespons IRP yang dicadangkan untuk objek perangkat lain di tempat lain dalam tumpukan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x219

Kesalahan non-fatal

Status IRP non-STATUS_NOT_SUPPORTED yang tidak berhasil untuk IRP_MJ_POWER sedang diteruskan ke tumpukan. RUNTIME DAYA yang gagal harus diselesaikan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x21A

Kesalahan non-fatal

Status IRP_MJ_POWER yang ditetapkan sebelumnya telah dikonversi ke STATUS_NOT_SUPPORTED.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x21B

Kesalahan non-fatal

Seorang driver telah mengembalikan status yang mencurigakan. Ini mungkin karena bug variabel yang tidak diinisialisasi di driver.

Param 3 - Alamat IRP.

0x21C

Peringatan

Penelepon telah menyalin tumpukan IRP tetapi tidak mengatur rutinitas penyelesaian. Ini tidak efisien -- gunakan IoSkipCurrentIrpStackLocation sebagai gantinya.

Param 2 - Dicadangkan

Param 3 - Dicadangkan

0x21D

Kesalahan fatal

Handler pengiriman IRP belum dilepas dengan benar dari tumpukan di bawahnya setelah menerima penghapusan IRP.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x21E

Kesalahan fatal

Handler pengiriman IRP belum menghapus objek perangkatnya dengan benar saat menerima penghapusan IRP.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x21F

Kesalahan non-fatal

Driver belum mengisi rutinitas pengiriman untuk fungsi utama IRP yang diperlukan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x220

Kesalahan non-fatal

IRP_MJ_SYSTEM_CONTROL telah diselesaikan oleh seseorang selain ProviderId. IRP ini seharusnya telah selesai lebih awal atau seharusnya diturunkan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - ProviderId.

0x221

Kesalahan fatal

Handler pengiriman IRP untuk PDO telah menghapus objek perangkatnya, tetapi perangkat keras belum dilaporkan hilang dalam kueri relasi bus.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x222

Kesalahan fatal

Handler pengiriman IRP Filter Bus telah terlepas setelah menerima IRP penghapusan saat PDO masih hidup. Filter Bus harus dibersihkan di panggilan balik FastIoDetach .

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x223

Kesalahan fatal

Handler pengiriman IRP untuk filter bus telah menghapus objek perangkatnya, tetapi PDO masih ada. Filter bus harus dibersihkan di panggilan balik FastIoDetach .

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x224

Kesalahan fatal

Handler pengiriman IRP telah mengembalikan status yang tidak konsisten dengan bidang IoStatus.Status IRP.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Kode status yang diharapkan.

0x225

Kesalahan non-fatal

Handler pengiriman IRP telah mengembalikan status ilegal (0xFFFFFFFF). Ini mungkin karena variabel tumpukan yang tidak diinisialisasi. Untuk men-debug kesalahan ini, gunakan perintah ln (Daftar Simbol Terdekat) dengan alamat yang ditentukan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Kode status.

0x226

Kesalahan fatal

Handler pengiriman IRP telah kembali tanpa menurunkan atau menyelesaikan IRP ini, atau seseorang lupa mengembalikan STATUS_PENDING.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x227

Kesalahan fatal

Rutinitas penyelesaian IRP berada dalam kode yang dapat dipaginasi. (Ini tidak pernah diizinkan.)

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x228

Kesalahan non-fatal

Rutinitas penyelesaian driver belum menandai IRP tertunda jika bidang PendingReturned diatur dalam IRP yang diteruskan ke dalamnya. Ini dapat menyebabkan Windows macet, terutama jika kesalahan dikembalikan oleh tumpukan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x229

Kesalahan fatal

Rutinitas pembatalan telah ditetapkan untuk IRP yang saat ini sedang diproses oleh driver yang lebih rendah di tumpukan, mungkin menginjak-injak rutinitas pembatalan mereka.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x22A

Kesalahan non-fatal

Objek perangkat fisik (PDO) belum merespons IRP yang diperlukan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x22B

Kesalahan non-fatal

Objek perangkat fisik (PDO) lupa mengisi daftar hubungan perangkat dengan PDO untuk kueri TargetDeviceRelation .

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x22C

Kesalahan fatal

Kode yang mengimplementasikan kueri TargetDeviceRelation belum disebut ObReferenceObject pada PDO.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x22D

Kesalahan non-fatal

Pemanggil telah menyelesaikan IRP_MJ_PNP tidak dimengerti alih-alih meneruskannya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x22E

Kesalahan non-fatal

Penelepon telah menyelesaikan IRP_MJ_PNP yang berhasil alih-alih meneruskannya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x22F

Kesalahan non-fatal

Penelepon telah menyelesaikan IRP_MJ_PNP yang tidak tersentuh (alih-alih melewati IRP ke bawah), atau non-PDO telah gagal IRP menggunakan nilai ilegal STATUS_NOT_SUPPORTED.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x230

Kesalahan non-fatal

Penelepon telah menyelesaikan IRP_MJ_POWER tidak mengerti alih-alih meneruskannya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x231

Kesalahan fatal

Penelepon telah menyelesaikan IRP_MJ_POWER yang berhasil alih-alih meneruskannya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x232

Kesalahan non-fatal

Pemanggil telah menyelesaikan IRP_MJ_POWER yang tidak tersentuh (alih-alih melewati IRP ke bawah), atau non-PDO telah gagal IRP menggunakan nilai ilegal STATUS_NOT_SUPPORTED.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x233

Kesalahan non-fatal

Bidang versi struktur kapabilitas kueri dalam kemampuan kueri IRP tidak diinisialisasi dengan benar.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x234

Kesalahan non-fatal

Bidang ukuran struktur kapabilitas kueri dalam kemampuan kueri IRP tidak diinisialisasi dengan benar.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x235

Kesalahan non-fatal

Bidang alamat struktur kapabilitas kueri dalam kemampuan kueri IRP tidak diinisialisasi dengan benar ke -1.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x236

Kesalahan non-fatal

Bidang Nomor UI dari struktur kapabilitas kueri dalam kemampuan kueri IRP tidak diinisialisasi dengan benar ke -1.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x237

Kesalahan fatal

Driver telah mengirim IRP yang dibatasi hanya untuk penggunaan sistem.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x238

Peringatan

Penelepon IoInitializeIrp telah melewati IRP yang dialokasikan dengan IoAllocateIrp. Ini ilegal, tidak perlu, dan berdampak negatif pada performa dalam penggunaan normal. Jika IRP ini sedang didaur ulang, lihat IoReuseIrp di Windows Driver Kit.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x239

Peringatan

Pemanggil IoCompleteRequest menyelesaikan IRP yang belum pernah dialihkan melalui panggilan ke IoCallDriver atau PoCallDriver. Ini mungkin bug.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x23A

Kesalahan fatal

Driver telah meneruskan IRP di IRQL yang ilegal untuk kode utama ini.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x23B

Kesalahan non-fatal

Pemanggil telah mengubah bidang status IRP yang tidak dipahaminya.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Tabel berikut ini mencantumkan kesalahan Verifikasi I/O tambahan yang bisa muncul. Kesalahan ini muncul ketika Verifikasi I/O yang Ditingkatkan diaktifkan. Untuk informasi selengkapnya, lihat Verifikasi I/O yang Ditingkatkan.

Kode Kesalahan I/O Tingkat keparahan Penyebab Kesalahan

0x23C

Kesalahan fatal

Driver telah menyelesaikan IRP tanpa mengatur rutinitas pembatalan di IRP ke NULL.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x23D

Kesalahan non-fatal

Driver telah kembali STATUS_PENDING tetapi tidak menandai IRP tertunda melalui panggilan ke IoMarkIrpPending.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Kode status.

0x23E

Kesalahan non-fatal

Driver telah menandai IRP tertunda tetapi tidak mengembalikan STATUS_PENDING.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Kode status.

0x23F

Kesalahan fatal

Pengandar belum mewarisi bit DO_POWER_PAGABLE dari tumpukan yang dilampirkan padanya.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x240

Kesalahan fatal

Driver mencoba menghapus objek perangkat yang telah dihapus melalui panggilan sebelumnya ke IoDeleteDevice.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x241

Kesalahan fatal

Driver telah melepaskan objek perangkatnya selama kejutan menghapus IRP.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x242

Kesalahan fatal

Pengandar telah menghapus objek perangkatnya selama penghapusan IRP secara mendadak.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x243

Kesalahan fatal

Driver gagal menghapus bendera DO_DEVICE_INITIALIZING di akhir AddDevice.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

Param 4 -

0x244

Kesalahan fatal

Driver belum menyalin bendera DO_BUFFERED_IO atau DO_DIRECT_IO dari objek perangkat yang dilampirkan.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x245

Kesalahan fatal

Driver telah mengatur bendera DO_BUFFERED_IO dan DO_DIRECT_IO. Bendera ini saling eksklusif.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x246

Kesalahan fatal

Pengandar gagal menyalin bidang DeviceType dari objek perangkat yang dilampirkannya.

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

0x247

Kesalahan fatal

Param 2 - Dicadangkan.

Param 3 - Dicadangkan.

Driver gagal menjalankan IRP yang tidak dapat gagal secara hukum.

0x248

Kesalahan fatal

Driver telah menambahkan objek perangkat yang bukan PDO ke kueri hubungan perangkat.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x249

Kesalahan non-fatal

Driver telah menghitung dua PDO anak yang mengembalikan ID Perangkat yang identik.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat objek perangkat pertama.

Param 4 - Alamat objek perangkat kedua.

0x24A

Kesalahan fatal

Driver salah menyebut fungsi I/O file dengan IRQL tidak sama dengan PASSIVE_LEVEL.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Dicadangkan.

Param 4 - Dicadangkan.

0x24B

Kesalahan fatal

Driver telah menyelesaikan permintaan IRP_MN_QUERY_DEVICE_RELATIONS jenis TargetDeviceRelation sebagai berhasil, tetapi tidak mengisi permintaan dengan benar atau meneruskan IRP ke tumpukan perangkat keras yang mendasar.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat objek perangkat.

0x24C

Kesalahan non-fatal

Driver telah kembali STATUS_PENDING tetapi tidak menandai IRP yang tertunda oleh panggilan ke IoMarkIrpPending.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Kode status.

0x24D

Kesalahan fatal

Driver telah meneruskan objek perangkat yang tidak valid ke fungsi yang memerlukan PDO.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Alamat objek perangkat.

0x300

Kesalahan non-fatal

Seorang driver telah mengembalikan status yang mencurigakan. Ini mungkin karena bug variabel yang tidak diinisialisasi di driver.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Kode status yang mencurigakan.

0x301

Kesalahan non-fatal

Driver telah meneruskan IRP di IRQL > DISPATCH_LEVEL.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Nilai IRQL salah

0x302

Kesalahan non-fatal

Driver telah meneruskan IRP di IRQL > = APC_LEVEL.

Manajer I/O harus mengantre APC untuk menyelesaikan permintaan ini. APC tidak akan dapat berjalan karena penelepon sudah berada di tingkat APC, sehingga pemanggil kemungkinan akan mengalami kebuntuan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Param 4 - Nilai IRQL yang salah.

0x306

Kesalahan non-fatal

Driver sedang menyelesaikan permintaan IRP_MJ_PNP (utama) dan IRP_MN_REMOVE_DEVICE (minor) dengan kode status kegagalan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x307

Kesalahan non-fatal

Driver mengeluarkan permintaan I/O dengan peristiwa yang sudah disinyalir dan menerima respons STATUS_PENDING. Hal ini dapat mengakibatkan unwinding sebelum I/O selesai.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x310

Kesalahan non-fatal

Driver sedang menginisialisasi ulang IRP yang masih digunakan.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x311

Kesalahan non-fatal

Driver sedang menginisialisasi ulang IRP yang dibuat dengan IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

0x312

Kesalahan non-fatal

Pemanggil menyediakan bidang Informasi Status IRP dengan nilai yang lebih besar dari bagian output buffer sistem.

Param 2 - Alamat dalam kode driver tempat kesalahan terdeteksi.

Param 3 - Alamat IRP.

Penyebab

Lihat deskripsi setiap kode di bagian Parameter untuk deskripsi penyebabnya.

Resolusi

Pemeriksaan bug ini hanya dapat terjadi ketika Driver Verifier telah diinstruksikan untuk memantau satu atau beberapa driver. Jika Anda tidak berniat menggunakan Pemverifikasi Driver, Anda harus menonaktifkannya. Untuk informasi selengkapnya, lihat "Cara mengontrol Pemverifikasi Driver" di Driver Verifier. Anda mungkin mempertimbangkan untuk memperbarui atau menghapus driver yang menyebabkan masalah ini juga.

Jika Anda adalah pengembang driver, gunakan informasi yang diperoleh melalui pemeriksaan bug ini untuk memperbaiki bug dalam kode Anda.

Untuk detail selengkapnya tentang Driver Verifier, lihat Driver Verifier.