時間が非常にかかりましたが、原因と対処法をメモ。
一つだけ言わせてもらうと「CSR社製Bluetooth スタック、大嫌い!」です。
今回の現象
- Windows 7 Professional 64bitのクライアントPCを利用
- 11/14にWindows Updateを実施、OS等は最新状態
- リモート デスクトップ接続(mstsc.exe)を実行(パスワード等を入力)
- [リモート デスクトップ接続 は動作を停止しました]のウィンドウが表示される
mstsc.exeのバージョン情報は下記の通り。
Application Error ログ
障害が発生しているアプリケーション名: mstsc.exe、バージョン: 6.1.7601.17514、タイム スタンプ: 0x4ce7ab44
障害が発生しているモジュール名: ntdll.dll、バージョン: 6.1.7601.18247、タイム スタンプ: 0x521eaf24
例外コード: 0xc0000374
障害オフセット: 0x00000000000c4102
障害が発生しているプロセス ID: 0x954
障害が発生しているアプリケーションの開始時刻: 0x01cee0ef83848de7
障害が発生しているアプリケーション パス: C:\Windows\system32\mstsc.exe
障害が発生しているモジュール パス: C:\Windows\SYSTEM32\ntdll.dll
レポート ID: fce7fb65-4ce2-11e3-ae7e-0009dd404bad
Windows Error Report ログ
障害バケット 134637766、種類 4
イベント名: APPCRASH
応答: 使用不可
Cab ID: 0
問題の署名:
P1: mstsc.exe
P2: 6.1.7601.17514
P3: 4ce7ab44
P4: StackHash_423a
P5: 6.1.7601.18247
P6: 521eaf24
P7: c0000374
P8: 00000000000c4102
P9:
P10:
添付ファイル:
C:\Users\ユーザ名\AppData\Local\Temp\WER8BCD.tmp.WERInternalMetadata.xml
これらのファイルは次の場所にある可能性があります:
C:\Users\ユーザ名\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_mstsc.exe_804b777746cdd9cfe3869fa3ecb7cf773ab686_0ef8ab3e
分析記号:
解決策を再確認中: 0
レポート ID: fce7fb65-4ce2-11e3-ae7e-0009dd404bad
レポートの状態: 0
VSの”プロセスの呼出し履歴”を使ってみる
修行の一環としてVistual Studio Express(VS)をたまに使っており、プロセスの挙動を確認してみました。結果、ntdll.dllのヒープが壊れている(0xC0000367)とのこと。
残念ながらこれ以上の情報が得られず、原因不明・・・
- リモートデスクトップ接続(mstsc.exe)を起動しておく
- VSを起動、[ツール]→[プロセスにアタッチ]をクリック
- [選択可能なプロセス]一覧から[mstsc.exe]を見つけ、[アタッチ]ボタンをクリック
- [デバッグ]→[ウィンドウ]→[呼び出し履歴]をクリック
または、[Alt]+[7]を押す
- リモートデスクトップ接続を実行(パスワード等を入力)
- [ブレークポイントが発生]するので[中断]ボタンをクリック
~CBtProxyCB 'mstsc.exe' (Win32): 'C:\Program Files\Common Files\Microsoft Shared\Windows Live\WLIDCREDPROV.DLL' がアンロードされました 'mstsc.exe' (Win32): 'C:\Windows\System32\certCredProvider.dll' がアンロードされました 'mstsc.exe' (Win32): 'C:\Windows\System32\BioCredProv.dll' がアンロードされました 'mstsc.exe' (Win32): 'C:\Windows\System32\vaultcli.dll' がアンロードされました 'mstsc.exe' (Win32): 'C:\Windows\System32\winbio.dll' がアンロードされました 'mstsc.exe' (Win32): 'C:\Windows\System32\SmartcardCredentialProvider.dll' がアンロードされました 'mstsc.exe' (Win32): 'C:\Windows\System32\LMIinit.dll' がアンロードされました Critical error detected c0000374 mstsc.exe によってブレークポイントが発生しました。 初回例外が 0x0000000076DD4102 (ntdll.dll) で発生しました (mstsc.exe 内): 0xC0000374: ヒープは壊れています。 (パラメーター: 0x0000000076E4B4B0)。 ハンドルされない例外が 0x0000000076DD4102 (ntdll.dll) で発生しました(mstsc.exe 内): 0xC0000374: ヒープは壊れています。 (パラメーター: 0x0000000076E4B4B0)。 初回例外が 0x0000000076D65A41 (ntdll.dll) で発生しました (mstsc.exe 内): 0xC0000005: 場所 0x0000000000000000 の読み取り中にアクセス違反が発生しました。 プログラム '[7776] mstsc.exe' はコード 0 (0x0) で終了しました。
原因はCSR Harmony Wireless Software Stack
全く原因が分からない状況でしたが、直前の行動を思い返してみました。
数週間前にLogitec社製Bluetoothドングル「LBT-UAN04C2」を購入、CSR社製[CSR Harmony Wireless Software Stack]をインストールした事くらい。
念のため、[CSR Harmony Wireless Software Stack]をアンインストールしてみたところ、解決しました。
アンインストール前後のntdll.dllのプロパティを見比べましたが、差異はありません。
CSR社のソフトウェアは何をしてくれたんだろうか・・・
いい迷惑&渡米前なのに疲れた・・・
SmartCardによるもの?
同じ現象が起きた方のブログ記事によると、RDPのローカルリソースにある「スマートカード」が原因と説明されていました。前述のスタックトレースに「SmartcardCredentialProvider.dll」の文字が・・・
リモートデスクトップ接続がクラッシュする - 普段はWindowsを使っているのよ
現在は同Bluetooth ドングルを使っていないので確認できていませんが、RDPの[ローカル デバイスとリソース]の[詳細]ボタンをクリックし、[スマート カード(複数)]のチェックを外せばいいようです。
勉強になります。
余談:CSR社製BTスタックとThinkPad Bluetooth キーボード
今回購入したロジテック社Bluetoothドングルは、CSR社のBTスタックを使用します。このBTスタックをインストールすると「ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード」は使えません。
理由は、ペアリングするためのウィザードが表示されない=機器を認証できないためです。
では、どうやってThinkPad Bluetooth ワイヤレス・トラックポイント・キーボードを使うのか?
CSR Harmony Wireless Software Stackをアンインストールし、Windows標準BTスタックを利用することです。
下記はアンインストールする前に行った作業手順です。
下記3点はドライバがないため利用する事が出来ません。
個人的には、キーボードが使えればそれだけでいいので無視するつもりです。