System.Security.Cryptography.Xml.SignedXml.LoadXml メソッドの更新について

こんにちは、Platform SDK (Windows SDK) サポートチームです。2018 年 5 月 8 日に公開された CVE-2018-0765 のセキュリティ更新に伴い、 System.Security.Cryptography.Xml.SignedXml.LoadXml  メソッドに行われた変更についてご案内します。 現象 2018 年 5 月 8 日に公開された CVE-2018-0765 のセキュリティの更新をインストールいただいた環境にて System.Security.Cryptography.Xml.SignedXml.LoadXml メソッドを利用して署名用の XML ファイルをロードした場合、Reference 要素 および Transform 要素が一定数以上定義されていると、「CryptographicException: 間違った形式の SignedInfo/Reference 要素です。」 例外が発生します。具体的な上限は以下の通りになります。 ・Reference 要素内の Transform 要素が 10 以上。 ・SignedInfo 要素内の Reference 要素が 100 以上。 原因 この上限はセキュリティ強化のために行われており、例外の発生は想定された動作になります。これまで Reference 要素 および Transform 要素は無制限に定義可能でしたが、セキュリティ攻撃に利用される危険性があると判断し、攻撃を防ぐために上限を設定しました。この情報は下記資料に公開しています。 CVE-2018-0765…


FlowDirection プロパティを RightToLeft に設定した場合の問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、XAML を使用するアプリケーションにおいて、FlowDirection プロパティを RightToLeft に設定した場合の問題についてご案内します。   現象 Store アプリ、UWP アプリ、WPF アプリ で FlowDirection プロパティを RightToLeft に設定して文字列を表示すると、Windows Forms アプリ と異なる表示結果になる場合があります。 例えば、以下のような XAML を Store アプリ、UWP アプリ、WPF アプリ で実装することを想定します。 <TextBlock Text=”String(100)” FlowDirection=”RightToLeft” /> <TextBlock Text=”String(100)…” FlowDirection=”RightToLeft”/> <TextBlock Text=”Windows 10Professional” FlowDirection=”RightToLeft” Language=”en-US”/> <TextBlock Text=”Windows 10Professional” FlowDirection=”RightToLeft” Language=”ar-SA”/> 以下は、実行時のスクリーンショットですが、上から、Store アプリ、UWP アプリ、WPF アプリ、Windows Forms アプリのウインドウになります。…


Windows 10 version 1803 (April 2018 Update) で、日本語版 Microsoft IME を無効化すると、タッチ キーボードが起動しない

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Windows 10 version 1803 (April 2018 Update) において日本語版 Microsoft IME を無効化した場合、タッチ キーボード (Tabtip.exe) が起動しない現象についてご案内します。   現象 IME のコンテキスト (HIMC 値) の状態には、ON/OFF/Disable の三つの状態があります。 ON : 日本語入力が可能なコンテキスト OFF : 日本語入力が不可能なコンテキスト (英数のみ入力可能なコンテキスト) Disable : IME を介した日本語、英数いずれの入力も不可能なコンテキスト (直接入力は可) これまでの Windows 10 では、TextBox 等の編集可能なコントロールをタッチした場合、IME のコンテキストが上記三つの状態のいずれであっても、タッチ キーボードが起動しました。 しかしながら、Windows 10 version 1803 (April 2018 Update) では、編集可能なコントロールの IME…


リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について

こんにちは、Platform SDK (Windows SDK) サポート チームです。 今回は、Windows 10 version 1803 (April 2018 Update) において、リモートでオープンされた メールスロット に、CreateFile 関数を実施すると ERROR_BAD_NETPATH (53) エラーとなる現象についてご案内します。 現象 サーバー側で CreateMailslot関数によりオープン処理が実施済みであり、クライアント側で本 メールスロットへ書き込むためにCreateFile関数を呼び出します。 クライアント側が \\<ComputerName>\mailslot\sample のようにリモートである場合、サーバー側のオープン状態であるにかかわらず、ERROR_BAD_NETPATH となり、書き込むことができません。 なお、この現象はクライアント側が Windows 10 version 1803 (April 2018 Update) のみで発生し、他の Windows バージョンでは発生しません。 また、クライアントが \\.\mailslot\sample のように自ホストを指定した場合にも発生しません。 原因 原因がわかりましたら、本ブログを更新予定です。 回避策 現時点では、回避策はありません。 状況 マイクロソフトでは、この事象について調査しています。 進展があり次第、本ブログを更新予定です。


ツールバー移動時の軌跡が残像となる問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Windows 10 version 1709 (Fall Creators Update) においてツールバーを移動した時の軌跡が残像となって残る現象についてご案内します。   現象 MFC の CToolBar クラスを使用してツールバーを実装し、アプリケーション実行時にドラッグ アンド ドロップ操作でツールバーを移動すると、下記スクリーンショットのように、ツールバーを移動した軌跡が残像となって残り、正しく描画されません。 この現象は Windows 10 version 1709 (Fall Creators Update) で発生し、Windows 10 version 1607 (Anniversary Update) や Windows 10 version 1703 (Creators Update) では発生しません。 なお CToolBar クラスは、Visual Studio 2017 でいうと MFC の新規プロジェクトの作成ウィザードにおいてプロジェクト形式として “MFC 標準” を選択した場合に、アプリケーションのツールバーとして使用されるようになります。  …


Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、System.Threading 名前空間の Thread.Abort メソッド (以降、Abort メソッド) を利用してスレッドを終了させた場合に発生する可能性がある現象についてご案内いたします。   現象 Abort メソッドはスレッドを強制終了させるメソッドです。 Thread.Abort メソッド < https://msdn.microsoft.com/ja-jp/library/system.threading.thread.abort.aspx > Abort メソッドを利用してスレッドを強制終了させると、以下の様な現象が発生する可能性があります。 ・ オブジェクト ハンドルやメモリ等のリーク ・ プロセスの強制終了 ・ プロセスのデッドロック   原因 スレッドが開始すると、そのスレッド内部で必要な様々なリソースの確保や初期化処理が行われます。 そしてスレッドが終了するタイミングでは、そのスレッド内部で確保・初期化された様々なリソースの解放処理が行われます。 ところが Abort メソッドを利用してスレッドを強制終了した場合は、これらのリソースの解放処理が必ず行われる保証がありません。 そして、これらのリソースの解放処理が行われなかった結果として、前述したような現象に発展する可能性があります。   回避策 可能な限り、Abort メソッドを利用してスレッドを強制終了しないようにします。 たとえば、以下のように自分自身を自発的に終了させる仕組みをスレッド (下記例ではスレッド B) 内に実装しておくことで、その仕組みを利用した外部スレッド (下記例ではスレッド A) が、安全にそのスレッド (下記例ではスレッド B) を終了させることができるようになります。 – スレッド A…


CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、MFC の CFileDialog クラスに関して確認されている問題についてご案内します。   現象 CFileDialog のコンストラクタにて bVistaStyle を FALSE に指定して表示させたファイル選択ダイアログ ボックスで SharePoint 上にあるフォルダを開くと、ダイアログボックスの応答が停止します。   CFileDialog クラス https://msdn.microsoft.com/ja-jp/library/dk77e5e7.aspx   原因 この現象は、ファイル選択ダイアログの中で SharePoint サーバー上の Web 画面の表示をサポートするコンポーネントの不具合によって発生します。   回避策 以下のレジストリ設定を適用することにより、ファイル選択ダイアログの中の Web 画面の表示が無効となり、本問題を回避することができます。   – 現在のユーザーに対して適用する場合 キー : HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer 名前 : NoHTMLViewForWebDAV 種類 : REG_DWORD (32ビット) 値 : 1   – コンピューターにログオンするすべてのユーザーに適用する場合…


WPF の CheckBox コントロールのチェック マーク (オプション マーク) について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、WPF の CheckBox コントロールのチェック マーク (オプション マーク) についてご案内します。   現象 WPF の CheckBox コントロールにおいて FlowDirection プロパティを RightToLeft に設定すると、CheckBox コントロール全体が「左向き」に描画されるだけでなく、CheckBox コントロールのチェック マーク部分も「左ハネ」で描画されるようになります。 ※ WPF の CheckBox コントロールの例   なお、アラビア語版 Windows の Explorer の CheckBox コントロールや、同様に RightToLeft 設定された Windows フォームの CheckBox コントロールについては、チェック マーク部分は「右ハネ」のまま描画されます。 ※ Windows フォームの CheckBox コントロールの例   原因 この動作は、WPF の…


Windows Search のSQL文にSystem.ItemUrlを指定すると、検索処理に失敗する

こんにちは、Platform SDK (Windows SDK) サポートチームです。アプリケーションから Windows Search 機能を利用してファイルの検索を行った場合、内部的なエラーにより検索結果が得られない現象についてご案内します。 現象Windows 10 1703 (Creators Update) および Windows 10 1709 (Fall Creators Update) 上で OS の Windows Search 機能を利用してファイル検索を行い、結果としてファイルの URL (file:///c:/mydir/bar/hello.txt 等) を取得しようとすると、検索に失敗します。 たとえば、アプリケーションから以下のように SELECT 文に System.ItemUrl を指定した場合、hr = cCommand.Open(cSession, pszSQL); が DB_E_ERRORSOCCURRED エラーを返して失敗します。 #include <atldbcli.h> CDataSource cDataSource; hr = cDataSource.OpenFromInitializationString(L”provider=Search.CollatorDSO.1;EXTENDED PROPERTIES=\”Application=Windows\””); CString pszSQL = “SELECT System.ItemUrl FROM…


TreeView を操作していると、StackOverflowException 例外で WPF アプリケーションが強制終了します

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、TreeView を操作している時に、WPF アプリケーションが StackOverflowException 例外で強制終了する問題についてご案内します。   現象 TreeView を実装した WPF アプリケーションにおいて、スクロールバーから TreeView をスクロールさせる、TreeView のクライアント領域をマウスでクリックする等の操作を行うと、StackOverflowException 例外でプロセスが強制終了することがあります。 本現象は、.NET Framework のバージョン 4.7 および 4.7.1 でのみ確認されています。   原因 本現象は、.NET Framework 4.7 ならびに 4.7.1 の TreeView 内部で使用している、VirtualizingStackPanel の仮想化処理の不具合が原因で発生しています。   回避策 以下のいずれかの回避策をご検討ください。 回避策 (1) TreeView の VirtualizingStackPanel.IsVirtualizing プロパティを False に設定し、仮想化オフの状態で TreeView を使用するようにします。 回避策 (2) TreeView の…