現在オフラインです。再接続するためにインターネットの接続を待っています

netprofm.dll を呼び出すサード パーティ製アプリケーションが不正終了する

現象
サードパーティ製アプリケーションにて、ネットワーク接続状況を取得するといった目的でマイクロソフト製の netprofm.dll モジュールがロードされる場合があります。この DLL がアンロードされるタイミングで、ごく稀にアプリケーションがアクセス違反によって不正終了します。
原因
本現象は、netprofm.dll の不具合により発生します。
当該 DLL は、内部動作によって COM オブジェクトを作成して関数を実行します。しかしながら、 この動作の最中に、netprofm.dll 自身がアンロードされることを想定していません。このため、関数の実行が完了しないタイミングで netprofm.dll 自身がアンロードされる状況が発生した場合に、不正終了します。
解決方法
本現象は Windows 8 以降の Windows で修正されています。
回避策
Windows 7 での修正プログラムはありません。アプリケーションが Windows サービスである場合、事象再現時に直ちにサービスを再起動するという復旧策を取ることが可能です。

1. [管理ツール] - [サービス] を開きます。
2. 事象が発生するサービス名を [右クリック] し、[プロパティ] を開きます。
3. [回復] タブより、"最初のエラー:" に "サービスを再起動する"、"サービスの再起動 :" を "n 分後に行う" (n は任意の整数) の設定をそれぞれ設定します。
4. [OK] を押してウィンドウを閉じます。 
状況
マイクロソフトは、本現象を弊社製品の不具合として認識しています。 
詳細
不正終了したアプリケーションのコール スタックを参照する一例として、下記のような状況となります。

> k
Call Site
ole32!CRpcResolver::ServerGetReservedID+0x26
ole32!MakeProxyHelper+0x82
ole32!MakeSCMProxy+0x32
ole32!CRpcResolver::BindToSCMProxy+0x96
ole32!CRpcResolver::CreateInstance+0x90
ole32!CClientContextActivator::CreateInstance+0x156
ole32!ActivationPropertiesIn::DelegateCreateInstance+0x5e
ole32!ICoCreateInstanceEx+0x5f5
ole32!CoCreateInstance+0x17b
<Unloaded_netprofm.dll>+0x75f4

その他にも、ole32.dll から、アンロードされた netprofm.dll への呼び出しが行われて不正終了するパターンも報告されています。不正終了時のスタック (関数呼び出し履歴) に、"Unloaded_netprofm.dll" という文字列と、"ole32!%関数名%" という文字列が確認できる場合、 事象に該当する可能性が高いと判断出来ます。
関連情報
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:3003452 - 最終更新日: 10/03/2014 01:14:00 - リビジョン: 1.0

Windows 7 Enterprise, Windows 7 Professional, Windows 7 Home Premium, Windows 7 Ultimate

  • KB3003452
フィードバック