Window Station(視窗站)與 Desktop(桌面)是 Windows NT 服務架構中最獨特且鮮為人知的物件。本文系統說明其層級關係、可見性、安全性、進程關聯與程式設計介面,釐清互動式登入、螢幕保護、Winlogon 切換背後的核心機制。
切換時其他桌面並未銷毀,仍在背景運行(如切換至 Winlogon 取消後回預設桌面,原程序狀態保持)。
STARTUPINFO.lpDesktop 指定進程關聯的「WindowStation\Desktop」(如 WinSta0\Default),傳遞給 CreateProcess/CreateProcessAsUser。lpDesktop = NULL,繼承呼叫進程的關聯;若指定空字串,系統建立新的不可見 Window Station 與 Desktop,授予呼叫者完整存取權。Window Station 與 Desktop 為可安全保護物件,進程必須具備對應的 DACL 存取權(如 WINSTA_ACCESSCLIPBOARD、DESKTOP_READOBJECTS 等),否則啟動失敗報錯 User32.dll initialization failure 或 Kernel32.dll initialization failure,退出碼 128。
typedef struct _STARTUPINFO {
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop; // 格式:"WinSta0\Default"
LPTSTR lpTitle;
// ... 座標、大小、顯示旗標、標準控制代碼等
} STARTUPINFO;
深入理解此架構,有助於開發安全的服務程式、設計會話隔離方案與排查互動式服務失敗問題。
Windows XP 如何進入 DOS 環境?三種方法:CMD 指令、開機 F8 命令提示字元、USB 隨身碟啟動
Windows XP 8 大開機模式完整解析:安全模式、網路安全模式、命令提示字元、啟動日誌、VGA 模式、最後正確配置、目錄服務還原、偵錯模式
Windows XP 快速找到 IE 收藏夾位置:Shift+整理、屬性查看路徑、自訂移動
WinXP 系統「自動維護」功能啟用與禁用全攻略(計劃任務/操作中心)
Windows XP 解除 20% 頻寬保留限制,釋放完整網路速度
Windows XP IE「網站還原錯誤」徹底解決:逐步停用外掛程式定位元兇