デスクトップ

デスクトップには論理的な表示面があり、ウィンドウ、メニュー、フックなどのユーザー インターフェイス オブジェクトが含まれています。これは、ウィンドウの作成と管理に使用できます。 各デスクトップ オブジェクトは、セキュリティ保護可能なオブジェクトです。 デスクトップが作成されると、そのデスクトップは呼び出し元プロセスの現在の ウィンドウ ステーション に関連付けられて、呼び出し元のスレッドに割り当てられます。

ウィンドウ メッセージは、同じデスクトップ上にあるプロセス間でのみ送信できます。 さらに、特定のデスクトップで実行されているプロセスのフック プロシージャは、同じデスクトップで作成されたウィンドウのみを対象としたメッセージを受信できます。

対話型ウィンドウ ステーション Winsta0 に関連付けられているデスクトップは、ユーザー インターフェイスを表示してユーザー入力を受け取ることができますが、一度にアクティブになっているデスクトップは 1 つだけです。 このアクティブなデスクトップ ( 入力デスクトップとも呼ばれます) は、現在ユーザーに表示され、ユーザー入力を受け取るデスクトップです。 アプリケーションでは、 OpenInputDesktop 関数を使用して、入力デスクトップへのハンドルを取得できます。 必要なアクセス権を持つアプリケーションでは、 SwitchDesktop 関数を使用して別の入力デスクトップを指定できます。

既定では、対話型ウィンドウ ステーションには、Default、ScreenSaver、Winlogon の 3 つのデスクトップがあります。

既定のデスクトップは、Winlogon がログオン ユーザーとして初期プロセスを開始したときに作成されます。 その時点で、既定のデスクトップがアクティブになり、ユーザーとの対話に使用されます。

セキュリティで保護されたスクリーン セーバーがアクティブになると、システムは自動的に ScreenSaver デスクトップに切り替え、承認されていないユーザーから既定のデスクトップ上のプロセスを保護します。 セキュリティで保護されていないスクリーン セーバーは、Winsta0\Default で実行されます。

ユーザーがログオンしている間、Winlogon デスクトップはアクティブです。 シェルが何かを表示する準備ができていることを示す場合、または 30 秒後のいずれか早い方の状態になると、システムは既定のデスクトップに切り替えます。 ユーザーのセッション中に、ユーザーが Ctrl + Alt + DEL キー シーケンスを押したとき、または [ユーザー アカウント制御 (UAC)] ダイアログ ボックスが開いているときに、システムは Winlogon デスクトップに切り替わります。

Windows Server 2003 および Windows XP/2000: UAC ダイアログ ボックスはサポートされていません。

Winlogon デスクトップのセキュリティ記述子を使用すると、 LocalSystem アカウントを含む、非常に制限された一連のアカウントにアクセスできます。 通常、アプリケーションはこれらのアカウントの SID をトークンに含めないため、Winlogon デスクトップがアクティブな間は Winlogon デスクトップにアクセスしたり、別のデスクトップに切り替えたりすることはできません。

詳細については、次のトピックを参照してください。