createWindowStationA 函式 (winuser.h)

建立視窗月臺物件、將它與呼叫進程產生關聯,並將它指派給目前的會話。

語法

HWINSTA CreateWindowStationA(
  [in, optional] LPCSTR                lpwinsta,
                 DWORD                 dwFlags,
  [in]           ACCESS_MASK           dwDesiredAccess,
  [in, optional] LPSECURITY_ATTRIBUTES lpsa
);

參數

[in, optional] lpwinsta

要建立的視窗月臺名稱。 視窗月臺名稱不區分大小寫,而且不能包含反斜線字元 (\) 。 只允許 Administrators 群組的成員指定名稱。 如果 lpwinstaNull 或空字串,系統會使用呼叫程式的登入會話識別碼來形成視窗月臺名稱。 若要取得此名稱,請呼叫 GetUserObjectInformation 函式

dwFlags

如果此參數 CWF_CREATE_ONLY 且視窗月臺已經存在,則呼叫會失敗。 如果未指定這個旗標,而且視窗月臺已經存在,函式就會成功,並將新的控制碼傳回至現有的視窗月臺。

Windows XP/2000: 此參數是保留的,而且必須是零。

[in] dwDesiredAccess

傳回控制碼對視窗月臺的存取類型。 此外,您可以指定任何標準存取權限,例如 READ_CONTROLWRITE_DAC,以及視窗月臺特定存取權限的組合。 如需詳細資訊,請參閱 Window Station Security and Access Rights

[in, optional] lpsa

SECURITY_ATTRIBUTES結構的指標,決定子進程是否可以繼承傳回的控制碼。 如果 lpsaNull,則無法繼承控制碼。

結構的 lpSecurityDescriptor 成員會指定新視窗月臺的安全描述項。 如果 lpsaNull,則視窗月臺 (和視窗內建立的任何桌面) 取得安全性描述項,授與 所有使用者GENERIC_ALL 存取權。

傳回值

如果函式成功,傳回值就是新建立之視窗月臺的控制碼。 如果指定的視窗月臺已經存在,函式會成功,並將控制碼傳回至現有的視窗月臺。

如果函式失敗,傳回值為 Null。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

完成控制碼之後,您必須呼叫 CloseWindowStation 以釋放控制碼。

注意

winuser.h 標頭會將 CreateWindowStation 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-windowstation-l1-1-0 (在 Windows 8)

另請參閱

CloseWindowStation

GetUserObjectInformation

OpenWindowStation

視窗月臺和桌面函式

視窗月臺