The CreateWindowStation function creates a window station object. It returns a handle that can be used to access the window station. A window station is a secure object that contains a set of global atoms, a clipboard, and a set of desktop objects.
HWINSTA CreateWindowStation(
LPTSTR lpwinsta, |
// name of the new window station |
DWORD dwReserved, |
// reserved; must be NULL |
DWORD dwDesiredAccess, |
// specifies access of returned handle |
LPSECURITY_ATTRIBUTES lpsa |
// specifies security attributes of the window station |
); |
Value |
Description |
WINSTA_ACCESSCLIPBOARD |
Required to use the clipboard. |
WINSTA_ACCESSGLOBALATOMS |
Required to manipulate global atoms. |
WINSTA_CREATEDESKTOP |
Required to create new desktop objects on the window station. |
WINSTA_ENUMDESKTOPS |
Required to enumerate existing desktop objects. |
WINSTA_ENUMERATE |
Required for the window station to be enumerated. |
WINSTA_EXITWINDOWS |
Required to successfully call the ExitWindows or ExitWindowsEx functions. |
WINSTA_READATTRIBUTES |
Required to read the attributes of a window station object. |
WINSTA_READSCREEN |
Required to access screen contents. |
WINSTA_WRITEATTRIBUTES |
Required to modify the attributes of a window station object. |
The lpSecurityDescriptor member of the structure specifies a security descriptor for the new window station. If lpsa is NULL, the window station (and any desktops created within the window) gets a security descriptor that grants GENERIC_ALL access to all users.
If the function succeeds, the return value is the handle to the newly created window station. If the specified window station already exists, the function succeeds and returns a handle to the existing window station.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.