버그 검사 0xCB 해석
비디오 스트림 중단 디버깅과 관련된 가장 일반적인 버그 검사 코드는 버그 검사 0xCB(DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS)입니다. 해당 매개 변수의 자세한 목록은 버그 확인 0xCB 참조하세요.
버그 검사가 발생할 때 표시되는 메시지는 원인으로 Ks.sys 가리킵니다.
Use !analyze -v to get detailed debugging information.
BugCheck CB, {f90c6ae0, f9949215, 81861788, 26}
Probably caused by : ks.sys ( ks!KsProbeStreamIrp+333 )
제안된 대로 !analyze -v 를 사용하여 자세한 정보를 가져옵니다.
kd> !analyze -v
DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS (cb)
Caused by a driver not cleaning up completely after an I/O.
When possible, the guilty driver's name (Unicode string) is printed on
the bugcheck screen and saved in KiBugCheckDriver.
Arguments:
Arg3: 81861788, A pointer to the MDL containing the locked pages.
이제 !search 확장을 사용하여 MDL 포인터와 연결된 가상 주소를 찾습니다.
kd> !search 81861788
Searching PFNs in range 00000001 - 0000FF76 for [FFFFFFFF81861788 - FFFFFFFF81861788]
Pfn Offset Hit Va Pte
- - - - - - - - - - - - - - - - - - - - - - - - - - -
000008A7 00000B0C 81861788 808A7B0C C020229C
00000A04 00000224 16000001 80A04224 C0202810
...
00001732 000009B4 81861788 817329B4 C0205CC8
찾은 각 VA(가상 주소)에 대해 IRP 서명을 찾습니다. VA에서 DWORD 1개를 뺀 dd 명령을 사용하여 이 작업을 수행합니다.
kd> dd 808A7B0C-4 l4
808a7b08 f9949215 81861788 00000026 00000000
kd> $ Not an Irp
kd> dd 80A04224-4 l4
80a04220 00000000 00000000 00000000 00000000
kd> $ Not an Irp
kd> dd 817329B4-4 l4
817329b0 01900006 81861788 00000070 ffa59220
kd> $ Matches signature
IRP 서명이 있는 VA를 찾은 후 !irp 확장을 사용하여 이 IRP에서 보류 중인 드라이버를 확인합니다.
kd> !irp 817329b0 7
Irp is active with 2 stacks 2 is current (= 0x81732a44)
Mdl = 81861788 System buffer = ffa59220 Thread 00000000: Irp stack trace.
>[ e, 0] 1 1 81a883c8 81ae6158 00000000-00000000 pending
\Driver\TESTCAP
Args: 00000070 00000000 002f4017 00000000
이 경우 \Driver\TESTCAP가 버그 검사의 원인일 수 있습니다.