У меня очень сложная головоломка с синими экранами на windows 7. Несколько недель назад на компьютере начали появляться синие экраны во время вычисления смарт-карты. Это POS-машина со смарт-картой, для каждой выданной квитанции она должна вычислять хеш в смарт-карте.
Поэтому я начал искать ошибки драйверов / оборудования, я обновил некоторые драйверы (также, если старые драйверы работали в течение многих лет без ошибок)... безуспешно. Поэтому я сменил смарт-карту и устройство чтения смарт-карт, но оно все равно не работало. Я также пытался переключить всю систему POS на другой компьютер, но каждые 10-20 вычислений хэша синий экран появлялся снова.
Я попытался проанализировать файл дампа, и кажется, что неисправный компонент был ntoskrnl.exe, и это, кажется, не ошибка подключенного драйвера.
Это файл дампа:https://drive.google.com/file/d/0B68Lon7XGG2tdzcxLXUwSXJibms/view?usp=sharing
Это детали дампа:
KMODE_EXCEPTION_NOT_HANDLED 0x0000001e ffffffff`c0000005 00000000`00000000 00000000`00000008 00000000`00000000 ntoskrnl.exe ntoskrnl.exe+70380
и данные анализа дампа:
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 всегда происходит при одной и той же операции: вычисление хеша смарт-карты, но оно не является систематическим, потому что оно может работать для многих вычислений перед сбоем, а иногда оно работает в течение нескольких дней без ошибок.
Я пытался прочитать о последнем обновлении Windows этой машины, сделанном за несколько дней до первого сбоя: KB2952664, KB3137061, KB3138901, KB3142042, KB3145739, KB3146706, KB3146963, KB3147071, KB3148198, KB3148851, KB3149090, но, кажется, ничего не связано с смарт-картой, я также попытался удалить их без удачи.
Через несколько дней у другого POS-компьютера возникла та же проблема с той же ошибкой. Это была система с другим компьютерным оборудованием, но с той же смарт-картой, считывателем смарт-карт и термопринтером. Я подчеркиваю, что эти системы хорошо работали много раз, и единственное недавнее изменение, о котором я мог подумать, - это обновления Windows.
В конце я решил обновить ОС с Windows 7 до Windows 10, но это не совсем решение!
Можете ли вы сказать мне, как читать подробности этого дампа? Есть ли какая-то информация, которую я не рассматриваю?