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.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk