EnumWindowStationsW function (winuser.h)

Enumerates all window stations in the current session. The function passes the name of each window station, in turn, to an application-defined callback function.


BOOL EnumWindowStationsW(
  [in] WINSTAENUMPROCW lpEnumFunc,
  [in] LPARAM          lParam


[in] lpEnumFunc

A pointer to an application-defined EnumWindowStationProc callback function.

[in] lParam

An application-defined value to be passed to the callback function.

Return value

If the function succeeds, it returns the nonzero value returned by the callback function that was pointed to by lpEnumFunc.

If the function is unable to perform the enumeration, the return value is zero. Call GetLastError to get extended error information.

If the callback function fails, the return value is zero. The callback function can call SetLastError to set an error code for the caller to retrieve by calling GetLastError.


The EnumWindowStations function enumerates only those window stations for which the calling process has the WINSTA_ENUMERATE access right. For more information, see Window Station Security and Access Rights.

EnumWindowStations repeatedly invokes the lpEnumFunc callback function until the last window station is enumerated or the callback function returns FALSE.


The winuser.h header defines EnumWindowStations as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header winuser.h (include Windows.h)
Library User32.lib
DLL User32.dll

See also


Window Station and Desktop Functions

Window Stations