CreateWindowStation

CreateWindowStation 函式
創建視窗站對象,與調用進程相關聯,並將它分配給當前會話。
語法
HWINSTA WINAPI CreateWindowStation(
__in_optLPCTSTR lpwinsta,
DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess,
__in_optLPSECURITY_ATTRIBUTES lpsa
);
參數
lpwinsta
要創建的視窗站的名稱。視窗站名稱不區分大小寫,並且不能包含反斜線字元 (\)。只允許管理員組的成員指定一個名稱。
如果lpwinsta是 NULL 或空字元串,系統使用調用進程的登錄會話標識符形成一個視窗站名。
要獲得此名稱,請調用GetUserObjectInformation函式。
dwFlags
如果此參數是 CWF_CREATE_ONLY 並且視窗站已經存在,則調用將失敗。如果未指定此標誌,並且視窗站已經存在,該函式會成功,並且返回現有視窗站的新句柄。
dwDesiredAccess
返回的句柄的視窗站的訪問類型。此外,您可以指定任何標準訪問許可權例如,READ_CONTROL 或 WRITE_DAC 和視窗站指定的訪問許可權的組合。
視窗站對象的有效訪問許可權包括標準訪問許可權和一些指定對象的訪問許可權。下表列出了所有對象所使用的標準訪問許可權。
DELETE 要刪除該對象。
READ_CONTROL要在安全描述表裡面讀取信息,不包括 SACL 中的信息。讀取或寫入 SACL,您必須需要 ACCESS_SYSTEM_SECURITY 訪問許可權。
WRITE_DAC 需要為對象在安全描述表中修改DACL 。
WRITE_OWNER 需要為對象在安全描述表中改變所有者 。
下面列出了指定對象的訪問許可權
WINSTA_ALL_ACCESS 視窗站的所有可能的訪問許可權。
WINSTA_ACCESSCLIPBOARD要使用剪貼簿。
WINSTA_ACCESSGLOBALATOMS 需要操作全局原子。
WINSTA_CREATEDESKTOP需要在視窗站上創建新的桌面對象。
WINSTA_ENUMDESKTOPS 需要枚舉現有桌面對象。
WINSTA_ENUMERATE 需要被枚舉的視窗站
WINSTA_EXITWINDOWS 需要成功調用ExitWindows或ExitWindowsEx函式。可以由用戶共享視窗站並且該訪問類型可以防止其它用戶從視窗站的所有者註銷視窗。
WINSTA_READATTRIBUTES需要讀取視窗站的屬性。此屬性包含顏色設定和其它視窗站的全局屬性。
WINSTA_READSCREEN 需要訪問螢幕內容
WINSTA_WRITEATTRIBUTES需要修改視窗站對象的屬性。屬性包括顏色設定和其它視窗站的全局屬性。
lpsa
一個SECURITY_ATTRIBUTES結構指針,確定是否可以由子進程繼承返回句柄。如果lpsa為 NULL,則不能繼承該句柄。
構的lpSecurityDescriptor成員指定新桌面的安全描述符。桌面會從父視窗站繼承其安全描述符。
返回值
如果函式成功,則返回值是新創建的視窗站的句柄。如果指定的視窗站已經存在,該函式成功並返回現有站視窗的句柄。
如果該函式失敗,則返回值為 NULL。要獲取擴展的錯誤的信息,請調用GetLastError
備註
該句柄使用完後,您必須調用CloseWindowStation釋放句柄。

相關詞條

熱門詞條

聯絡我們