Windows10の32ビットアプリでのCreateWindowEx関数の問題

場合によっては、新しいバージョンにアップグレードした後、一部の32ビットアプリケーションでWindowsが作成されているときに、 Windows 10が(Windows 10)msctf.dllから(msctf.dll)CreateWindowEx関数を呼び出すと、クラッシュやその他の問題が発生します。この投稿では、  CreateWindowEx関数とは何かを理解します。この関数エラーの考えられる原因を調査し、問題を軽減するための推奨される解決策を提供します。

CreateWindowEx関数を理解する

CreateWindowEx関数

WindowsフォームまたはWindowsPresentationFoundation(Windows)WPF(Windows Presentation Foundation) )を使用する.NETアプリケーションを含むWindowsアプリケーションは、 CreateWindowExAまたはCreateWindowExW関数を呼び出してウィンドウを作成します(WPF)

両方の関数は、呼び出しで指定されたウィンドウスタイルやハンドルなど、いくつかのパラメーター検証を実行する共通のUSER32関数を内部的に呼び出し、 (USER32)WS_EX_MDICHILD拡張ウィンドウスタイルが指定されている場合は(WS_EX_MDICHILD)MDI子ウィンドウの作成を処理し、呼び出しの現在のアクティブ化コンテキストを処理しますスレッド。CreateWindowEx呼び出しのUSER32側(USER32-side)ですべてが正常に行われている場合は、 CreateWindowExのカーネルモード( (CreateWindowEx)WIN32K)実装を呼び出します。

CreateWindowExは、新しいウィンドウオブジェクトを作成しようとすると、次のタスクを実行します。

  • 新しいウィンドウオブジェクトのハンドルを作成すると、呼び出しプロセスのユーザー(User)ハンドルクォータの制限を超えるかどうかを判断し ます。
  • デスクトップのヒープから新しいウィンドウオブジェクトにメモリを割り当てます。
  • 新しいウィンドウオブジェクトのメモリを初期化します。
  • ユーザー(User)ハンドルテーブルに新しいウィンドウオブジェクトのハンドルを作成します。

CreateWindowExエラーの原因

CreateWindowEx関数の問題を引き起こす可能性のあるいくつかの条件は、次のように列挙されます。

  • 指定されたウィンドウクラスは存在しません。
  • 無効なウィンドウスタイルまたは拡張ウィンドウスタイルを使用しています。
  • ウィンドウハンドルやメニューハンドルなどの無効なユーザーハンドルを使用する。(User)
  • 親ウィンドウを指定せずに子ウィンドウを作成しようとしています。
  • 子ウィンドウまたは所有ウィンドウを作成しようとして、指定された親/所有者が呼び出し元のスレッドとは異なるデスクトップに属しています。
  • 子ウィンドウまたは所有ウィンドウを作成すると、ネストされたウィンドウの制限を超えます。
  • 新しいウィンドウオブジェクトを作成すると、呼び出しプロセスのハンドルクォータを超えます。
  • デスクトップのヒープで使用できるヒープが不足しているため、新しいウィンドウオブジェクトにメモリを割り当てることができません。
  • ユーザー(User)ハンドルテーブルに使用可能なエントリがありません。

(Fix CreateWindowEx)Windows10の32ビットアプリのCreateWindowEx関数の問題を修正しました

Microsoftは、 (Microsoft)CreateWindowEx関数の問題に対する回避策を提供しています。

この問題を回避するには、Windows10のインストールを以前のバージョンにロールバックする必要があります。

Windows 10のロールバックオプションは、Windows 10のインストールをアップグレードしてから10日間(10 days)(ほとんどの場合)利用できます。

この操作により、個人用ファイルは保持されますが、アップグレード後にインストールされたアプリケーションとドライバーは削除され、設定に加えた変更は元に戻されます。

ロールバックオプションが利用できない場合–個人ファイルをバックアップする場合は、ITサポート、ヘルプデスク、またはMicrosoftサポートに連絡して、デバイスを以前の(Microsoft Support)Window10バージョンに復元するためのヘルプを求めることができます。

That’s it!

PS:Microsoftは解決に取り組んでおり、Windows10の今後のリリースで更新を提供する予定です。



About the author

私は Windows 10 の技術者であり、長年にわたって個人や企業が新しいオペレーティング システムを活用できるよう支援してきました。外観をカスタマイズしたり、さまざまなユーザー向けにアプリケーションをパーソナライズする方法など、Microsoft Office に関する豊富な知識があります。さらに、Explorer アプリを使用して、コンピューター上のファイルやフォルダーを探索および検索する方法も知っています。



Related posts