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 |
); |
Parameters
lpwinsta
Optionally points to a null-terminated string specifying the name of the window station to be created. Window station names are case-insensitive and cannot contain backslash characters (\). Only members of the Administrators group are allowed to specify a name. If lpwinsta is NULL, the system forms a window station name using the logon session identifier for the calling process. To get this name, call the GetUserObjectInformation function.
dwReserved
Reserved; must be NULL.
dwDesiredAccess
Specifies the type of access to the window station. This parameter can be one or more of the following values:
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. |
lpsa
Pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpsa is NULL, the handle cannot be inherited.
Windows NT: 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.
Windows 95: The lpSecurityDescriptor member of the structure is ignored.
Return Values
If the function succeeds, the return value is the handle to the newly created window station.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
See Also