マイクロソフトのエンジニアがWindowsの空白シャットダウンブロックの謎を解明

熱心なWindowsユーザーである私は、物心ついた頃から、一日中ゲーム(または仕事)をした後、PCをシャットダウンできないという、名前のないウィンドウに何度も遭遇してきました。何年もの間、この現象に悩まされてきましたが、調べてみると、どうやらこの島でこの問題に悩んでいるのは私だけではないようです。
Redditの投稿へのコメントを見る限り、数年前からWindowsのシャットダウンを妨害する無名のプログラムは、常にユーザーを困惑させる問題だったようです。しかし、Microsoftのベテラン、レイモンド・チェン氏は最近、自身の連載「Old New Thing」シリーズの中で、Windowsのシャットダウンを妨害するこの無名の秘密のウィンドウの背後にあるコンセプトを明かしました。
最近、PCをシャットダウンしようとすると、名前のないプログラム(時には単に「G」という名前のプログラムも一緒に)がシャットダウンを妨げます。「とにかくシャットダウン」をクリックするとシャットダウンはできるのですが、そのプログラムの発生源がどうしてもわかりません。
u/Ronibaboni から r/techsupport (Reddit)
熟練した Microsoft エンジニアによると、ユーザーが Windows をシャットダウンしようとしてプログラムがそのプロセスを阻止した場合、オペレーティング システムは通常、シャットダウン通知を処理するウィンドウと、その通知の処理を待機している他のウィンドウを含むウィンドウのリストを含むブロック シャットダウン リゾルバ (BSDR)を表示します。
Chen 氏が強調したように、「プログラムはプレゼンテーションのすべての部分を制御します。説明はウィンドウのタイトルから取得されます。アイコンはウィンドウのアイコンから取得されます。そして、サブタイトルはプログラムが ShutdownBlockReasonCreate 関数に渡した文字列から取得されます。」
ただし、プログラムがその関数を呼び出せず、「このアプリはシャットダウンを妨げています」や「このアプリは再起動を妨げています」などのシステムが提供する一般的な文字列がデフォルトで表示される場合もあります。
説明が空白になる場合があり、これはかなり奇妙な現象です。「でも、なぜ説明が空白になることがあるのでしょうか? タイトルのないウィンドウを作る人なんているのでしょうか?」とチェン氏は付け加えました。結局のところ、このコンセプトは設計上のものです。チェン氏は、プログラムはユーザーに表示することを意図していないウィンドウを作成することが多いため、開発者は意図的にタイトルを空白にしていると指摘しています。
さらに彼は、これらのウィンドウはダミーの「ヘルパー」ウィンドウとして設計されており、メッセージを受信したり、他のウィンドウを配置するためのアンカーとして機能したりすると説明しています。「プログラムは、このウィンドウがユーザーに表示されないことを知っていたので、タイトルを付けませんでした」とチェン氏は結論付けています。しかし、Blocked Shutdown Resolver はタイトルを表示し、名前のないプログラムがシャットダウンを妨げていることを説明しています。謎は解けました。少なくとも、なぜこのようなことが起こるのかは分かりました。
Windows と Xbox の熱狂的なファンのための最新ニュース、レビュー、ガイド。
ケビン・オケムワは、ケニアのナイロビを拠点とするベテランのテクノロジージャーナリストです。Windows Centralで業界の最新トレンドや動向を幅広く取材し、豊富な経験を有しています。イノベーションへの情熱と細部への鋭い洞察力を持つ彼は、OnMSFT、MakeUseOf、Windows Reportといった主要メディアに寄稿し、Microsoftエコシステムを取り巻くあらゆるトピックについて、洞察力に富んだ分析と最新ニュースを提供しています。常に変化するテクノロジーのトレンドを追っている暇な時は、世界を旅したり、音楽を聴いたりしています。