Bagikan melalui


0x18 Pemeriksaan Bug: REFERENCE_BY_POINTER

Pemeriksaan bug REFERENCE_BY_POINTER memiliki nilai 0x00000018. Ini menunjukkan bahwa jumlah referensi objek ilegal untuk status objek saat ini.

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 REFERENCE_BY_POINTER

Parameter Deskripsi

1

Jenis objek objek yang jumlah referensinya diturunkan.

2

Objek yang jumlah referensinya diturunkan.

3

Dicadangkan

4

Dicadangkan

Penyebab

Jumlah referensi objek ilegal untuk status objek saat ini. Setiap kali driver menggunakan penunjuk ke objek, driver memanggil rutinitas kernel untuk meningkatkan jumlah referensi objek satu per satu. Ketika driver selesai dengan pointer, driver memanggil rutinitas kernel lain untuk mengurangi jumlah referensi satu per satu.

Driver harus mencocokkan panggilan ke rutinitas yang meningkatkan (referensi) dan mengurangi (dereferensi) jumlah referensi. Pemeriksaan bug ini disebabkan oleh inkonsistensi dalam jumlah referensi objek. Biasanya, inkonsistensi disebabkan oleh driver yang mengurangi jumlah referensi objek terlalu banyak, melakukan panggilan tambahan yang mendereferensikan objek. Pemeriksaan bug ini dapat terjadi karena jumlah referensi objek masuk ke nol saat masih ada handel terbuka ke objek. Ini mungkin juga terjadi ketika jumlah referensi objek turun di bawah nol, apakah ada handel terbuka ke objek atau tidak.

Resolusi

Pastikan bahwa driver cocok dengan panggilan ke rutinitas yang meningkatkan dan mengurangi jumlah referensi objek. Pastikan bahwa driver Anda tidak melakukan panggilan tambahan ke rutinitas yang mendereferensikan objek (lihat Parameter 2).

Anda dapat menggunakan debugger untuk membantu menganalisis masalah ini. Untuk informasi selengkapnya, lihat Analisis crash dump menggunakan debugger Windows (WinDbg). Ekstensi debug !analyze menampilkan informasi tentang pemeriksaan bug dan dapat membantu dalam menentukan akar penyebabnya.

Untuk menemukan jumlah handle dan pointer pada objek, gunakan perintah !object debugger.

kd> !object address

Di mana alamat adalah alamat objek yang diberikan dalam Parameter 2.

Anda juga dapat mengatur titik henti dalam kode yang mengarah ke kode berhenti ini dan mencoba untuk maju satu langkah ke dalam kode yang rusak.

Jika Anda tidak dilengkapi untuk menggunakan debugger Windows untuk mengerjakan masalah ini, Anda dapat menggunakan beberapa teknik pemecahan masalah dasar.

  • Periksa Sistem Masuk Pemantau Peristiwa untuk pesan kesalahan tambahan yang mungkin membantu mengidentifikasi perangkat atau driver yang menyebabkan pemeriksaan bug ini.

  • Jika driver diidentifikasi dalam pesan pemeriksaan bug, nonaktifkan driver atau tanyakan kepada produsen untuk pembaruan driver.

  • Konfirmasikan bahwa perangkat keras baru yang diinstal kompatibel dengan versi Windows yang terinstal. Misalnya, Anda bisa mendapatkan informasi tentang perangkat keras yang diperlukan di Spesifikasi Windows 10.

  • Untuk informasi pemecahan masalah umum tambahan, lihat Menganalisis Data Layar Biru Pemeriksaan Bug.