2017-10-21 19 views
1

Windows 10をFall Creators Updateにアップデートした後、間欠障害が発生しました(CreateWindowEx)。 GetLastErrorは0x000003e6 - ERROR_NOACCESS /メモリへの無効なアクセスを返します。頻繁に(必ずしもそうではありませんが)、まったく同じパラメータで呼び出しを繰り返すだけで成功します。Fall Creators UpdateでCreateWindowExが断続的に失敗するのはなぜですか(エラー998/0x3e6)?

hwnd = ::CreateWindowEx(0, wndClassName, NULL, WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, r.left, r.top, r.right, r.bottom, hParent, NULL, AfxGetInstanceHandle(), NULL); 

wndClassNameは、この呼び出しで登録wndClassの名前です:

LPCSTR wndClassName = /* clsName passed in */; 
WNDCLASS wndcls; 
HINSTANCE hInst = AfxGetInstanceHandle(); 
if (!(::GetClassInfo(hInst, wndClassName, &wndcls))) 
{ 
    ZeroMemory(&wndcls, sizeof(wndcls)); 
    wndcls.lpfnWndProc = ::DefWindowProc; 
    wndcls.hCursor = ::LoadCursor(nullptr, IDC_ARROW); 
    wndcls.hInstance = hInst; 
    wndcls.lpszClassName = wndClassName; 
    wndcls.hbrBackground = (HBRUSH)::GetStockObject(NULL_BRUSH); 
    AfxRegisterClass(&wndcls); 
} 

MSDNのドキュメントは、障害の典型的な理由の一つは

WH_CBTフックがインストールされていると述べていると返します障害コード

私のアプリケーションはMFCを使用しています.MFCはCBTフックに依存していると思います。

Fall Creators Updateで発生し始めたこれらの断続的な断続的な障害を調査して解決する方法についてのアイデアはありますか? 12月12日にリリース

+0

デバッグコードが必要です。これだけです。私はここでCBTのフックが役割を果たすとは思わない。エラーコードは自分のために言う - あなたは、ウィンドウプロシージャ内のアクセスまたは無効なアドレスや不良なデータを並べ替えてみてください。はい、必要な場合はそれをすべて呼び出す必要があります - どのメッセージを持っています。 – RbMm

+0

@RbMmウィンドウプロシージャはDefWindowProcです。質問に対するウィンドウクラス登録呼び出しが追加されました。 –

+0

あなたはそれを後で( 'DefWindowProc')それを変更することはありませんか? 'DefWindowProc'でカスタムウィンドウクラスを持っているのはどういう意味ですか?いずれにしても、エラーは自分のために言う。あなたは 'STATUS_DATATYPE_MISALIGNMENT'を持っているかのように見えるか、(STATUS_ACCESS_VIOLATION'まで)私は言うことができません。 – RbMm

答えて

2

これはWin10 FCU Update KB4054517に固定されたWindows 10秋クリエーターアップデートのバグだった

バグは、Windows 10秋クリエイター更新の64ビット版で動作する32ビットの大規模アドレス対応のアプリケーションに影響を与えました。 0x80000000未満の十分なメモリがカーネルで使用できない場合、CreateWindowExは失敗しました。ドキュメンタリーの目的のために

、これらは、私たちは、問題への洞察を得るために取った措置です:工学の技術サポートを終了するまで、周りのシャッフルを取得

  1. http://support.microsoft.com/oas
  2. での技術サポート要求を開くには、
  3. ブログ投稿の投稿者に割り当てられたケースを持つtroubleshooting CreateWindowEx failures
  4. カーネルデバッガで問題を検査できるように失敗を再現するための手順を試行するのに費やす日
  5. reproできるケースを取得できない
  6. 別の顧客が同じエラーコードで同じようなCreateWindowExエラーを持つ再現ケースで送信することができました(64ビットバージョンのWin10 Fall Creators Updateで動作する問題)。
  7. 12月に修正される可能性のあるパッチを待ちます。火曜日
+3

MSの公式の既知の問題は次のとおりです。https://support.microsoft.com/en-us/help/4054150/issues-when-windows-10-fall-creators-update-calls-createwindowex – peterflynn

関連する問題