Prev Next

CreateWindowStation info  Overview  Group

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.

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.

Return Values

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.

See Also

GetUserObjectInformation, OpenWindowStation