Bagaimana cara menjelaskan KMODE_EXCEPTION_NOT_HANDLED di ntoskrnl.exe +70380?

0

Saya memiliki teka-teki yang sangat sulit dengan layar biru pada windows 7. Beberapa minggu yang lalu komputer mulai memiliki beberapa layar blu selama perhitungan kartu pintar. Ini adalah mesin POS dengan kartu pintar, untuk setiap resepit yang dikeluarkan itu harus menghitung hash di kartu pintar.

Jadi saya mulai mencari kesalahan driver / hardware, saya memperbarui beberapa driver (juga jika driver lama bekerja selama bertahun-tahun tanpa kesalahan) ... tanpa hasil. Karena itu saya mengganti smartcard dan smartcardreader tetapi masih tidak berfungsi. Saya juga mencoba untuk mengalihkan semua sistem POS ke komputer lain tetapi setiap perhitungan 10-20 hash layar biru muncul lagi.

Saya mencoba menganalisis file dump, dan tampaknya komponen yang gagal adalah ntoskrnl.exe, dan ini sepertinya bukan driver yang terhubung kesalahan.

Ini adalah file dump: https://drive.google.com/file/d/0B68Lon7XGG2tdzcxLXUwSXJibms/view?usp=sharing

Ini adalah rincian dump:

KMODE_EXCEPTION_NOT_HANDLED 0x0000001e  ffffffff`c0000005   00000000`00000000   00000000`00000008   00000000`00000000   ntoskrnl.exe    ntoskrnl.exe+70380

dan data analisis dump:

Crash Dump Analysis provided by OSR Open Systems Resources, Inc. (http://www.osr.com)
Online Crash Dump Analysis Service
See http://www.osronline.com for more information
Windows 7 Kernel Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7601.23392.amd64fre.win7sp1_ldr.160317-0600
Machine Name:
Kernel base = 0xfffff800`02e4f000 PsLoadedModuleList = 0xfffff800`03091730
Debug session time: Sat May  7 14:48:33.499 2016 (UTC - 4:00)
System Uptime: 0 days 0:24:58.841
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

KMODE_EXCEPTION_NOT_HANDLED (1e)
This is a very common bugcheck.  Usually the exception address pinpoints
the driver/function that caused the problem.  Always note this address
as well as the link date of the driver/image that contains this address.
Arguments:
Arg1: ffffffffc0000005, The exception code that was not handled
Arg2: 0000000000000000, The address that the exception occurred at
Arg3: 0000000000000008, Parameter 0 of the exception
Arg4: 0000000000000000, Parameter 1 of the exception

Debugging Details:
------------------

TRIAGER: Could not open triage file : e:\dump_analysis\program\triage\modclass.ini, error 2

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".

FAULTING_IP: 
+0
00000000`00000000 ??              ???

EXCEPTION_PARAMETER1:  0000000000000008

EXCEPTION_PARAMETER2:  0000000000000000

WRITE_ADDRESS: GetPointerFromAddress: unable to read from fffff800030fb100
GetUlongFromAddress: unable to read from fffff800030fb1c8
 0000000000000000 Nonpaged pool

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".

BUGCHECK_STR:  0x1e_c0000005

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  1

TRAP_FRAME:  fffff8800701b7f0 -- (.trap 0xfffff8800701b7f0)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=fffffa800737ee70 rbx=0000000000000000 rcx=fffffa8008f13a20
rdx=fffffa800737ee70 rsi=0000000000000000 rdi=0000000000000000
rip=0000000000000000 rsp=fffff8800701b980 rbp=0000000000000000
 r8=fffffa800398b010  r9=fffff8000303de80 r10=fffffa80036fb570
r11=fffffa8004a55c10 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei ng nz na pe nc
00000000`00000000 ??              ???
Resetting default scope

LAST_CONTROL_TRANSFER:  from fffff80002f3f512 to fffff80002ebf380

STACK_TEXT:  
fffff880`0701af68 fffff800`02f3f512 : 00000000`0000001e ffffffff`c0000005 00000000`00000000 00000000`00000008 : nt!KeBugCheckEx
fffff880`0701af70 fffff800`02ebea02 : fffff880`0701b748 fffffa80`c0000120 fffff880`0701b7f0 00000000`00000000 : nt! ?? ::FNODOBFM::`string'+0x40e2d
fffff880`0701b610 fffff800`02ebd57a : 00000000`00000008 00000000`00000000 00000000`00000200 fffffa80`c0000120 : nt!KiExceptionDispatch+0xc2
fffff880`0701b7f0 00000000`00000000 : 00000000`00000000 00000000`00000000 fffff880`0507cf00 fffffa80`08239bb8 : nt!KiPageFault+0x23a


STACK_COMMAND:  kb

FOLLOWUP_IP: 
nt! ?? ::FNODOBFM::`string'+40e2d
fffff800`02f3f512 cc              int     3

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  nt! ?? ::FNODOBFM::`string'+40e2d

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntkrnlmp.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  56eb24e6

FAILURE_BUCKET_ID:  X64_0x1e_c0000005_nt!_??_::FNODOBFM::_string_+40e2d

BUCKET_ID:  X64_0x1e_c0000005_nt!_??_::FNODOBFM::_string_+40e2d

Followup: MachineOwner
---------

BSOD senang selalu pada operasi yang sama: perhitungan hash smartcard, tetapi tidak sistematis karena dapat bekerja untuk banyak perhitungan sebelum crash dan kadang-kadang ia bekerja selama beberapa hari tanpa kesalahan.

Saya mencoba membaca tentang pembaruan Windows terakhir dari mesin yang dilakukan beberapa hari sebelum crash pertama: KB2952664, KB3137061, KB31320901, KB3142042, KB3145739, KB3146706, KB3146963, KB3147071, KB3148198, KB3148851, KB3148851, KB3149085, tetapi tidak ada kartu pintar yang terhubung ke kartu KB, tetapi tampaknya tidak ada kartu pintar yang terhubung ke kartu KB. juga mencoba untuk menghapusnya tanpa hasil.

Setelah beberapa hari komputer POS lain mulai memiliki masalah yang sama dengan kesalahan yang sama. Itu adalah sistem dengan perangkat keras komputer lain tetapi dengan smartcard, smartcard reader dan thermal recepit printer yang sama. Saya menggarisbawahi bahwa sistem-sistem itu bekerja dengan baik berkali-kali dan satu-satunya perubahan yang dapat saya pikirkan adalah pembaruan windows.

Pada akhirnya saya menyelesaikan upgrade OS dari Windows 7 ke Windows 10, tetapi ini bukan solusi!

Bisakah Anda memberi tahu saya cara membaca detail dump itu? Apakah ada informasi yang tidak saya pertimbangkan?

Tobia
sumber
Silakan kirim minidump dalam layanan berbagi file di mana kita dapat melihatnya. Tidak praktis untuk memandu Anda melalui analisis dump di utas forum. Sebenarnya akan sangat membantu memiliki beberapa minidump.
Jamie Hanrahan
Kamu benar! Saya memperbarui pertanyaan saya dengan tautan ke file minidump.
Tobia

Jawaban:

1

Terlihat sangat seperti jika masalah Anda ada di iusb3xhc.sys, driver untuk pengontrol host USB 3.

Alat analisis bawaan debugger, !analyze -vperintah, sampai pada kesimpulan ini. Untuk menggunakan ini, Anda harus menginstal paket "Alat Debugging untuk Windows" dan mengkonfigurasi jalur file simbol. Kemudian buka file dump di WinDbg dan ketik! Analysis -v di command prompt.

Untuk melakukannya secara manual, buka file dump, lalu gunakan perintah kv:

0: kd> kv
Child-SP          RetAddr           : Args to Child                                                           : Call Site
fffff880`0701af68 fffff800`02f3f512 : 00000000`0000001e ffffffff`c0000005 00000000`00000000 00000000`00000008 : nt!KeBugCheckEx
fffff880`0701af70 fffff800`02ebea02 : fffff880`0701b748 fffffa80`c0000120 fffff880`0701b7f0 00000000`00000000 : nt! ?? ::FNODOBFM::`string'+0x40e2d
fffff880`0701b610 fffff800`02ebd57a : 00000000`00000008 00000000`00000000 00000000`00000200 fffffa80`c0000120 : nt!KiExceptionDispatch+0xc2
fffff880`0701b7f0 00000000`00000000 : 00000000`00000000 00000000`00000000 fffff880`0507cf00 fffffa80`08239bb8 : nt!KiPageFault+0x23a (TrapFrame @ fffff880`0701b7f0)

Ini menunjukkan tumpukan yang sangat singkat. Tetapi di tepi kanan dari baris terakhir kita melihat panggilan dari KiPageFault (menunjukkan bahwa pemrosesan kesalahan akses memori sedang berlangsung) dengan indikasi "Trap frame". Frame trap merekam status prosesor pada titik pengecualian kesalahan halaman. Perintah debugger .trapmemungkinkan kita mengatur status debugger (sebagian darinya) menjadi apa yang dicatat dalam bingkai perangkap:

0: kd> .trap fffff880`0701b7f0
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed.
rax=fffffa800737ee70 rbx=0000000000000000 rcx=fffffa8008f13a20
rdx=fffffa800737ee70 rsi=0000000000000001 rdi=0000000000000000
rip=0000000000000000 rsp=fffff8800701b980 rbp=0000000000000000
 r8=fffffa800398b010  r9=fffff8000303de80 r10=fffffa80036fb570
r11=fffffa8004a55c10 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei ng nz na pe nc
00000000`00000000 ??               ???

Sekarang kita coba kvperintah lagi:

0: kd> kv
  *** Stack trace for last set context - .thread/.cxr resets it
Child-SP          RetAddr           : Args to Child                                                           : Call Site
fffff880`0701b980 00000000`00000000 : 00000000`00000000 fffff880`0507cf00 fffffa80`08239bb8 fffff880`0701ba18 : 0x0
fffff880`0701b988 00000000`00000000 : fffff880`0507cf00 fffffa80`08239bb8 fffff880`0701ba18 fffff880`0507cf60 : 0x0
fffff880`0701b990 fffff880`0507cf00 : fffffa80`08239bb8 fffff880`0701ba18 fffff880`0507cf60 fffffa80`08f13a50 : 0x0
fffff880`0701b998 fffffa80`08239bb8 : fffff880`0701ba18 fffff880`0507cf60 fffffa80`08f13a50 00000000`00000000 : iusb3xhc+0x7cf00
fffff880`0701b9a0 fffff880`0701ba18 : fffff880`0507cf60 fffffa80`08f13a50 00000000`00000000 00000000`0000004f : 0xfffffa80`08239bb8
fffff880`0701b9a8 fffff880`0507cf60 : fffffa80`08f13a50 00000000`00000000 00000000`0000004f fffff880`009f1380 : 0xfffff880`0701ba18
fffff880`0701b9b0 fffffa80`08f13a50 : 00000000`00000000 00000000`0000004f fffff880`009f1380 00000000`00000000 : iusb3xhc+0x7cf60
fffff880`0701b9b8 00000000`00000000 : 00000000`0000004f fffff880`009f1380 00000000`00000000 00000000`00000100 : 0xfffffa80`08f13a50
fffff880`0701b9c0 00000000`0000004f : fffff880`009f1380 00000000`00000000 00000000`00000100 00000000`00000000 : 0x0
fffff880`0701b9c8 fffff880`009f1380 : 00000000`00000000 00000000`00000100 00000000`00000000 00000000`00000001 : 0x4f
fffff880`0701b9d0 00000000`00000000 : 00000000`00000100 00000000`00000000 00000000`00000001 fffff880`009f1f60 : 0xfffff880`009f1380
fffff880`0701b9d8 00000000`00000100 : 00000000`00000000 00000000`00000001 fffff880`009f1f60 fffff800`02eb4fbd : 0x0
fffff880`0701b9e0 00000000`00000000 : 00000000`00000001 fffff880`009f1f60 fffff800`02eb4fbd fffffa80`04807810 : 0x100
fffff880`0701b9e8 00000000`00000001 : fffff880`009f1f60 fffff800`02eb4fbd fffffa80`04807810 00000000`00000000 : 0x0
fffff880`0701b9f0 fffff880`009f1f60 : fffff800`02eb4fbd fffffa80`04807810 00000000`00000000 00000000`00000000 : 0x1
fffff880`0701b9f8 fffff800`02eb4fbd : fffffa80`04807810 00000000`00000000 00000000`00000000 00000000`00000000 : 0xfffff880`009f1f60
fffff880`0701ba00 fffff800`02ec48c2 : 00000000`00000001 00000000`00000000 00000000`0000004f fffffa80`036c66d0 : nt!KiCommitThreadWait+0x3dd
fffff880`0701ba90 fffff800`0319365f : fffffa80`04807b40 fffffa80`04807b40 00000000`00000000 fffffa80`0000004f : nt!KeDelayExecutionThread+0x186
fffff880`0701bb00 fffff800`03193fed : 00000000`00000000 ffffffff`fffe7960 00000000`00000000 00000000`00000000 : nt!IoCancelThreadIo+0x6f
fffff880`0701bb30 fffff800`03194651 : 00000000`00000000 fffff800`03158400 fffffa80`075e6100 00000000`00000000 : nt!PspExitThread+0x58d

Tumpukan ini rusak (perhatikan semua 0 di mana harus ada alamat situs panggilan) tetapi jelas bahwa panggilan keluar dari driver iusb3xhc.sys sedang dalam proses.

Solusi yang disarankan: Saya cukup yakin driver itu ditulis oleh Intel. Buka situs web Intel dan lihat apakah ada versi yang lebih baru dari yang disediakan Microsoft. Jika tidak ada, atau jika tidak membantu, coba yang sebelumnya. Last resort: nonaktifkan pengontrol host USB 3 dan hidup dengan kecepatan USB 2 sampai driver yang lebih baik datang.

Jamie Hanrahan
sumber
Jika ini jawabannya saya berharap menemukan pengontrol USB3 yang sama di kedua komputer ... ok saya akan memeriksanya! Terima kasih.
Tobia
@Tobia Atau paling tidak driver pengontrol USB3 yang sama.
CVn
Jika Anda kesulitan menemukan driver, coba cari satu untuk chipset, karena USB HC kemungkinan merupakan bagian dari itu.
Jamie Hanrahan
Bagaimana saya mengatur jalur simbol? Saya melakukan debug dari komputer lain daripada yang bermasalah, apakah ini masalah?
Tobia
Setelah memperbarui driver, saya memiliki kesalahan lagi, saya ingin menguji lagi dump terakhir mengikuti jawaban Anda, tetapi saya terjebak setelah perintah .trap, menjalankan perintah kv. Saya hanya mendapatkan satu baris tunggal (situs panggilan: 0x0)
Tobia