UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。

今回は、Windows 10 1703 (RS2) において UIAutomationCore.dll を利用するアプリケーションが異常終了する問題についてご案内します。

 

現象
アプリケーションが UIAutomationCore.dll を利用し、その後このモジュールをアンロードした場合、アプリケーションがクラッシュする場合があります。たとえば、アプリケーション内で IUIAutomation::GetFocusedElement を呼び出した後、そこで返されたインターフェイスを解放してもクラッシュします。

 

原因
UIAutomationCore.dll は、自身が内部的に登録したコールバックの情報をクリアせずにアンロードされる不具合があります。それにより、DLL のアンロード後であっても、そのコールバック処理の呼び出しが行われてしまいます。この時すでに存在しない DLL のコールバックであるため、クラッシュする問題が発生します。

 

回避策
この問題をコード上で回避する方法はありません。

 

状況
この問題は Windows 10 RS2 上で顕著に発生します。 Windows 10 RS3 リリース時に修正していますが、完全には解決しておらず、Windows 10 RS3 上でも低い頻度で発生することが報告されています。