Allion Labs / Joseph Lin
BSoDとは?
ブルースクリーン(BSOD)は、Windows PCでOSに致命的なエラーが発生して復帰できないときに発生します。BSODはOSが正常に動作できない状態に陥ったことを示しています。BSODを引き起こす要因は様々です。ハードウェアが原因のこともありますし、ドライバが原因のこともあります。また、重要なプロセスが予期せず終了したことが原因のこともあります。
WindowsOSでBSODは一般的なエラーではありますが、ブルースクリーン上に表示されるメッセージからだけでは、原因を知ることは困難です。しかし、システムの詳細設定にて、システムエラーが発生した際のデバッグ情報の書き込みで“完全メモリダンプ”オプションを選択すれば、BSODが発生した時に完全なメモリダンプを取得することができ、このメモリダンプを解析することでブルースクリーン発生の原因を知ることができます。
WindowsのBSODメモリダンプ解析
メモリダンプを入手したあと、WinDbgのようなWindows用のBSODデバッガを用いてBSODの原因を解析することができます。
WinDbgはMicrosoftのWindowsOS用の多目的なデバッガです。デバッグはシステム内のエラーを発見し、解決するためのプロセスです。WinDbgではユーザモードのアプリケーション、デバイスドライバ、カーネルモードでのOS自身のデバッグが可能です。
アリオンは過去数年にわたりPCメーカーの開発に協力してきており、WindDbgによるBSODメモリダンプ解析も豊富な経験があります。その経験に基づき、BSODエラーを下記の4種類に分類します。
-
デバイスドライバの問題
-
アプリケーションの問題
-
ハードウェアの問題
-
Windows OSの問題
シャットダウンストレステストでBSODが発生。BSODコードは0x9f
「原因」:“WindowsはIntelのWireless Bluetoothドライバが次の電力ステートに移行するのを待っていたが、デバイスドライバが次の電力ステートに移行しなかったため、IRP ペンディングのあとBSODが発生。
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)] 0 e1 ffff8508e793ee10 00000000 00000000-00000000 pendingDriverACPI
Args: 00000000 00000001 00000001 00000000
————————————————————————————————–
[アリオン解析] Windowsはデバイスが次の電力ステートに移行するのを待っている状態でした。ログから、デバイスが次の電力ステートに移行しなかったことがわかります。そのため、ペンディングの後にBSODが発生しました。
————————————————————————————————–
2: kd> !devstack ffff8508e6f2db90
!DevObj !DrvObj !DevExt ObjectName
ffff8508e6f30d50 DriverBTHUSB ffff8508e7991eb0
ffff8508e6f318d0 Driveribtusb ffff8508e71da310
ffff8508e793ee10 DriverACPI ffff8508d32e7010
> ffff8508e6f2db90 DriverUSBHUB3 ffff8508e715e310 USBPDO-4
!DevNode ffff8508e79516b0 :
DeviceInst is “USBVID_8087&PID_00265&c5fc33b&0&10”
ServiceName is “BTHUSB”
————————————————————————————————–
USBVID_8087&PID_00265&c5fc33b&0&10
=>Intel Wireless Bluetooth Driver
————————————————————————————————–
REG_DWORD UBR 184
————————————————————————————————–
Windows 10 Pro 2004 (19041.388)
————————————————————————————————–
2: kd> lmvm UsbHub3
Browse full module list
start end module name
fffff800`332d0000 fffff800`33373000 UsbHub3 (pdb symbols) d:symbolusbhub3.pdbFEB0212F8C4FD77DDEEBF0678FB00EA21usbhub3.pdb
Loaded symbol image file: UsbHub3.sys
Image path: SystemRootSystem32driversUsbHub3.sys
Image name: UsbHub3.sys
Browse all global symbols functions data
Image was built with /Brepro flag.
Timestamp: FDA30E83 (This is a reproducible build file hash, not a timestamp)
CheckSum: 000AC346
ImageSize: 000A3000
File version: 10.0.19041.264
Product version: 10.0.19041.264
————————————————————————————————–
[アリオン解析] UsbHub3.sys version is 10.0.19041.264
このバージョンは最新のMSFT QFE 2020.08Bで使用されているものと同じです。したがって、このドライバがBSODの原因であるとは考えられません。
————————————————————————————————–
2: kd> lmvm bthusb
Browse full module list
start end module name
fffff800`38b70000 fffff800`38b91000 BTHUSB (pdb symbols) d:symbolbthusb.pdbBE8B332932B8B19471111557BE5095DA1bthusb.pdb
Loaded symbol image file: BTHUSB.sys
Image path: SystemRootSystem32driversBTHUSB.sys
Image name: BTHUSB.sys
Browse all global symbols functions data
Image was built with /Brepro flag.
Timestamp: 4B55908C (This is a reproducible build file hash, not a timestamp)
CheckSum: 000279B2
ImageSize: 00021000
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
Information from resource tables:
————————————————————————————————–
[アリオン解析]BTHUB.sysのファイルバージョンはわかりませんが、BSODが発生したプラットフォームのWindowsバージョンはWindows10 2004(19041.388)です。最新のMSFT WFE 2020.08B上のBTHUB.sysのバージョンは10.0.19041.423です。
————————————————————————————————–
2: kd> !reg querykey REGISTRYMACHINESYSTEMCONTROLSET001SERVICESibtusb
Sorry <REGISTRYMACHINESYSTEMCONTROLSET001SERVICESibtusb> is not cached
=============================================================
Falling back to traversing the tree of nodes.
Hive ffffe70f12c72000
KeyNode ffffe70f176db5dc
[SubKeyAddr] [SubKeyName] ffffe70f176db8f4 Parameters [SubKeyAddr] [VolatileSubKeyName] ffffe70f17efe664 EnumUse ‘!reg keyinfo ffffe70f12c72000 <SubKeyAddr>’ to dump the subkey details
[ValueType] [ValueName] [ValueData] REG_DWORD Type 1REG_DWORD Start 3
REG_DWORD ErrorControl 1
REG_DWORD Tag a
REG_EXPAND_SZ ImagePath SystemRootSystem32DriverStoreFileRepositoryibtusb.inf_amd64_b9506ba89bf1aa17ibtusb.sys
REG_SZ DisplayName @oem55.inf,%ibtusb.SVCDESC_IBT%;インテル(R) ワイヤレス Bluetooth(R)
REG_SZ Group PNP Filter
REG_MULTI_SZ Owners oem55.inf
————————————————————————————————–
[解決方法] Intel Wireless Bluetoothドライバを入れ替えるか、Intelに問題を報告することを推奨します。
————————————————————————————————
アリオンはWindows BSODの原因調査のサポートをします。また、問題を解決するためのコンサルティングサービスも提供します。
アリオンのBSOD解析にご興味をお持ちの方は、service@allion.co.jpまでお気軽にお問い合わせください。