7月 082019
 

参照: 1903: dwm.exe goes to 100% CPU on remote host after disconnecting from RDP session... Can anyone reproduce? : Windows10

リモートデスクトップホストとなっているマシンが RDP セッションを切断された場合、dwm.exe が CPU を異常に消費するようになる問題があるらしい。
報告によると Intel, NVIDIA の GPU で発生しているようだが、私の再現環境は AMD(Radeon HD7750) なので、GPU メーカーには依存しない模様。

参照: Graphics Forum - Intel® Community Forum

以下のグループポリシーを 無効 にすることで回避できる。

グループポリシー
-> コンピューターの構成
-> 管理用テンプレート
-> Windows コンポーネント
-> リモート デスクトップ サービス
-> リモート デスクトップ セッション ホスト
-> リモート セッション環境
-> リモート デスクトップ接続に WDDM グラフィック ディスプレイ ドライバーを使用する

1903 からリモートデスクトップに WDDM ベースのドライバーが用いられるようになったが、そこにバグがあることが原因ではないかと推測されている。

このリリース以降、リモートデスクトップサービスでは、1つのセッションリモートデスクトップに Windows ディスプレイドライバーモデル (WDDM) ベースの間接ディスプレイドライバー (IDD) が使用されます。 Windows 2000 のディスプレイドライバーモデル (XDDM) ベースのリモートディスプレイドライバーのサポートは、今後のリリースで削除される予定です。 XDDM ベースのリモートディスプレイドライバーを使う独立系ソフトウェアベンダーは、WDDM ドライバーモデルへの移行を計画する必要があります。
Windows 10 バージョン 1903-削除された機能 | Microsoft Docs

追記 (2019/10/25)

オプションパッチながら KB4522355 で修正された模様。

Addresses an issue with high CPU usage in Desktop Window Manager (dwm.exe) when you disconnect from a Remote Desktop Protocol (RDP) session.
October 24, 2019—KB4522355 (OS Build 18362.449)

5月 262016
 

WPF/WinRT の事はこちらへ:
カラーマネジメントシステムの概要 と カラマネプログラミング初歩 – CAT EARS

結論

  • 出来なくはないがちょいと面倒
  • WinRT の頃とさほど変わってない
  • モバイルでも動くようになったのが大きな違い

UWP で使えるコンポーネントのカラマネ対応状況

UWP API C++/CX Win2D SharpDX
モニタプロファイルの取得
埋め込みプロファイルの取得
プロファイルを使った画像の色変換
変換結果の描写

Continue reading »

8月 252015
 

※ 1809 以降は、設定->アプリ->アプリと機能->オプション機能の管理 でインストールできるようになりました。
Windows 10 October 2018 Updateで変わった、サーバ管理ツールRSATのインストール方法:Tech TIPS - @IT

出てたので。

Remote Server Administration Tools for Windows 10

Continue reading »

8月 062015
 

記事のメモ。

Windows の HTTP スタックには他にも HTTP.sys があるが、基本 IIS 向けのカーネルモードドライバとして動作する HTTP リスナーで、クライアントアプリには超使いにくいやつなんで今回は省略。
なお .NET Framework の System.Net.HttpListener の中身は HTTP.sys なので、アレもサーバー以外では超絶使いにくい。

5月 272015
 

さて巷ではJVNVU#98282440: 「提督業も忙しい!」(KanColleViewer) がオープンプロキシとして動作する問題が話題ですが、FiddlerCore は何も考えないで実装すると恐らくこうしてしまうような仕様です。クソですね。。

そもそも何が問題なのか

とりあえず適当に FiddlerCore を使ったアプリケーションを立ち上げてみましょう。

FiddlerApplication.Startup(55555, FiddlerCoreStartupFlags.Default);

するとあら不思議、0.0.0.0:55555でListningされてしまいます。

C:\Windows\system32>netstat -a -b -n -o -p TCP

アクティブな接続

プロトコル  ローカル アドレス          外部アドレス        状態           PID
...(中略)...
  TCP    0.0.0.0:55555          0.0.0.0:0              LISTENING       6688
 [FiddlerTest.vshost.exe]

これではアプリが立ち上がってる間は外部からHTTPプロキシとして利用できてしまいます。
知らず知らずのうちに他所様への攻撃の踏み台にされて、ある日突然警察がやってくるなんてこともあるかもしれません。怖いですね。

で、どうすればいいかというと、127.0.0.1:55555でLisningするようにできればローカルプロセスしかアクセスできなくなるので、そう変更したいですね?
これはごく簡単で、AllowRemoteClientsfalseにしてやればOKです。

FiddlerApplication.Startup(55555
    , FiddlerCoreStartupFlags.RegisterAsSystemProxy
    | FiddlerCoreStartupFlags.ChainToUpstreamGateway
    | FiddlerCoreStartupFlags.MonitorAllConnections
    | FiddlerCoreStartupFlags.CaptureLocalhostTraffic);

Flagなので指定しなければOK。

C:\Windows\system32>netstat -a -b -n -o -p TCP

アクティブな接続

プロトコル  ローカル アドレス          外部アドレス        状態           PID
...(中略)...
  TCP    127.0.0.1:55555        0.0.0.0:0              LISTENING       7128
 [FiddlerTest.vshost.exe]

つまりFiddlerCoreStartupFlags.Defaultがイカンわけです。
でも FiddlerCore は Fiddler.exe のUI以外の部分を抜き出したものなわけですから、Fiddler.exe 自体がそういうもんだという可能性もあります。


参照: FiddlerCore – Fiddler Proxy Engine for your .NET Applications

ここで Fiddler.exe および FiddlerCore のデフォルト値を見てみましょう。

Continue reading »

4月 022015
 

WindowsでVPN接続すると、VPN接続先がデフォルトゲートウェイとなるようなルールがルーティングテーブルに追加される。
VPN経由でインターネット接続できる場合は特に問題ないが、そうでない場合はVPN接続中はインターネットが利用できなくなってしまう。

以下の設定により、VPN接続先をデフォルトゲートウェイとするルーティングルールの追加が行われなくなり、VPNのサブネット以外への通信はVPNを経由せず直接インターネット接続するようになる。

  1. ネットワークと共有センター>アダプター設定の変更 を開く
  2. VPN接続設定のプロパティ を開く
  3. ネットーワークタブ を開く
  4. 「インターネットプロトコルバージョン~」のプロパティを開く
  5. 詳細設定を開く
  6. IP設定タブ>リモートネットワークでデフォルトゲートウェイを使う を無効にする
9月 092014
 

概要

  • L-02F で W4-820 を用いてインターネット通信をした場合、断続的に無通信状態が発生する
    • 途切れまくるので、正直そのままでは使いものにならない

環境

  • 使用ルーター : LG L-02F
  • 使用PC : Acer Iconia W4-820 (以下W4)
  • 使用SIM : ぷららモバイル LTE 定額無制限プラン

再現条件

  • 他 W4 端末でも再現する
  • PC側に iPod touch 5G, MacBook Pro, Nexus7, iPad mini 等を用いても再現しない
  • ルーター側に URoad-Aero, WR8700N を用いても再現しない
  • L-02F の PWLAN を利用して URoad-Aero 経由でインターネット接続しても再現しない
  • L-02F の Wi-Fi を用いて他PCと通信した場合も再現しない
  • L-02F の設定、W4 の NIC 設定、NIC ドライバで影響があるものは発見できなかった
  • W4 がバッテリ駆動の時は再現し、電源接続時は再現しない

回避策

powercfg -setdcvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 19cbb8fa-5279-450e-9fac-8a3d5fedd0c1 12bbebe6-58d6-4636-95bb-3217ef867c1a 0
パラメータ 説明
-setdcvalueindex バッテリ駆動 時の設定
381b4222-f694-41f0-9685-ff5bb260df2e バランス プラン
19cbb8fa-5279-450e-9fac-8a3d5fedd0c1 ワイヤレス アダプターの設定
12bbebe6-58d6-4636-95bb-3217ef867c1a 省電力モード
0 最大パフォーマンス(1~3は省電力 (低/中/高))
  • この回避策を用いても、Bluetooth にて Arc Touch Mouse Surface Edition を使用している際には不安定となった
    • Bluetooth と Wi-Fi の干渉はよく知られている問題
    • L-02F で 802.11b のみを用いることで多少改善された(割り込みタイミングの問題?)
    • URoad-Aero, WR8700N を使用している場合は問題ない(たまたま?)
    • どうやら 5GHz で接続していても切れることが分かったが、どうせ屋内でしか使えないモードなので放置……