次の方法で共有


バグ チェック 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 から 1 DWORD を 引いた 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 である可能性があります。