Intel のWiMax BlueTooth ドライバ(BPUSB.SYS)がシャットダウン時にぬるぽで死ぬ件
Windows 2000ノートに WiMax ドライバをインストールして以来、
シャットダウンの一番最後の段階(電源が切れる直前)でBSoD になるという変な現象に遭遇していました。
BSoDの CrashDumpが取れたので、逆アセンブルしてみたところ…。
SUB_L00013140: mov edi,edi push ebp mov ebp,esp mov eax,[ebp+0Ch] push eax mov ecx,[ebp+08h] push ecx mov edx,[L0001E0C8] push edx call [L0001DB30] pop ebp retn 0008h |
なんかコールしてるんですがこのL0001DB30というアドレスに対する操作
どこにもないんです。
つまり、必ずNULL Pointer参照して落ちてる?
SUB_L00013140: retn 0008h |
試しにこうしてみたところ、BSoD なくなったんだけど、何なんだよもう
bpusb.sys seems to call always null pointer add... | Intel Communities
追記:調べてみた所、インストール時に限定でこのアドレスの参照が行われる処理が別のファイルから行われる模様
1DA24: WDF_BIND_INFO
1DAA8: FuncTable
https://github.com/Microsoft/Windows-Driver-Frameworks/blob/master/src/framework/shared/inc/private/common/fxldr.h
https://github.com/Microsoft/Windows-Driver-Frameworks/blob/master/src/publicinc/wdf/kmdf/1.17/wdffuncenum.h
でも…なんで空?
もしかして、シャットダウン時に先に 解放されてNULL参照とかいうおちですかね・ω・