Allion Labs / Joseph Lin

 

BSoDとは?

ブルースクリーン(BSOD)は、Windows PCでOSに致命的なエラーが発生して復帰できないときに発生します。BSODはOSが正常に動作できない状態に陥ったことを示しています。BSODを引き起こす要因は様々です。ハードウェアが原因のこともありますし、ドライバが原因のこともあります。また、重要なプロセスが予期せず終了したことが原因のこともあります。

Windows 10のBSODエラー画面

WindowsOSでBSODは一般的なエラーではありますが、ブルースクリーン上に表示されるメッセージからだけでは、原因を知ることは困難です。しかし、システムの詳細設定にて、システムエラーが発生した際のデバッグ情報の書き込みで“完全メモリダンプ”オプションを選択すれば、BSODが発生した時に完全なメモリダンプを取得することができ、このメモリダンプを解析することでブルースクリーン発生の原因を知ることができます。

デバッグ情報の書き込みで“完全メモリダンプ”オプションを選択すれば、BSODが発生した時に完全なメモリダンプを取得可能
デバッグ情報の書き込みで“完全メモリダンプ”オプションを選択すれば、BSODが発生した時に完全なメモリダンプを取得可能

 

WindowsのBSODメモリダンプ解析

メモリダンプを入手したあと、WinDbgのようなWindows用のBSODデバッガを用いてBSODの原因を解析することができます。

WinDbgはMicrosoftのWindowsOS用の多目的なデバッガです。デバッグはシステム内のエラーを発見し、解決するためのプロセスです。WinDbgではユーザモードのアプリケーション、デバイスドライバ、カーネルモードでのOS自身のデバッグが可能です。

WinDbgはデバッグタスクを実行します
WinDbgはデバッグタスクを実行します

 

アリオンは過去数年にわたりPCメーカーの開発に協力してきており、WindDbgによるBSODメモリダンプ解析も豊富な経験があります。その経験に基づき、BSODエラーを下記の4種類に分類します。

  • デバイスドライバの問題

  • アプリケーションの問題

  • ハードウェアの問題

  • Windows OSの問題

 

アリオンが実施する実際のBSODメモリダンプ解析

シャットダウンストレステストでBSODが発生。BSODコードは0x9f

「原因」:“WindowsはIntelのWireless Bluetoothドライバが次の電力ステートに移行するのを待っていたが、デバイスドライバが次の電力ステートに移行しなかったため、IRP ペンディングのあとBSODが発生。

[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)] 0 e1 ffff8508e793ee10 00000000 00000000-00000000    pending

DriverACPI

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     Enum

Use ‘!reg keyinfo ffffe70f12c72000 <SubKeyAddr>’ to dump the subkey details

[ValueType]         [ValueName]                   [ValueData] REG_DWORD           Type                          1

REG_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までお気軽にお問い合わせください。