76 if (lpwinsta && *lpwinsta)
90 ERR(
"Failed to open WindowStations directory\n");
99 hWindowStationsDir =
NULL;
104 lpwinsta ? &WindowStationName :
NULL,
107 lpsa ? lpsa->lpSecurityDescriptor :
NULL);
110 if (lpsa && lpsa->bInheritHandle)
119 if (hWindowStationsDir)
140 ULONG CurrentEntry, EntryCount;
160 if (NameList ==
NULL)
180 EntryCount = *((
DWORD *) NameList);
183 for (CurrentEntry = 0; CurrentEntry < EntryCount && Ret; ++CurrentEntry)
229 else if (
Len <=
sizeof(FixedNameA))
249 if (NameA != FixedNameA)
260 if (NameA != FixedNameA)
373 HANDLE hWindowStationsDir;
387 ERR(
"Failed to open WindowStations directory\n");
420 IN HWINSTA hWindowStation,
static BOOL CALLBACK EnumFunc(_In_ HWND hWnd, _In_ PCWSTR lpszString, _In_ HANDLE hData)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define ERROR_NOT_ENOUGH_MEMORY
#define NT_SUCCESS(StatCode)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
DWORD_PTR NTAPI NtUserCallOneParam(DWORD_PTR Param, DWORD Routine)
@ ONEPARAM_ROUTINE_GETWINSTAINFO
#define OBJ_CASE_INSENSITIVE
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define InitializeObjectAttributes(p, n, a, r, s)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
#define DIRECTORY_CREATE_OBJECT
#define DIRECTORY_TRAVERSE
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSTATUS APIENTRY NtUserBuildNameList(HWINSTA hWindowStation, ULONG dwSize, PVOID lpBuffer, PULONG pRequiredSize)
HWINSTA APIENTRY NtUserCreateWindowStation(IN POBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK dwDesiredAccess, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5, DWORD Unknown6)
BOOL NTAPI NtUserSetWindowStationUser(IN HWINSTA hWindowStation, IN PLUID pluid, IN PSID psid OPTIONAL, IN DWORD size)
HWINSTA APIENTRY NtUserOpenWindowStation(IN POBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK dwDesiredAccess)
NTSTATUS NTAPI NtOpenDirectoryObject(OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
#define STATUS_BUFFER_TOO_SMALL
PULONG MinorVersion OPTIONAL
NAMEENUMPROCA UserEnumFunc
#define RTL_CONSTANT_STRING(s)
HWINSTA WINAPI OpenWindowStationW(IN LPCWSTR lpszWinSta, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess)
BOOL FASTCALL EnumNamesA(HWINSTA WindowStation, NAMEENUMPROCA EnumFunc, LPARAM Context, BOOL Desktops)
struct tagENUMNAMESASCIICONTEXT * PENUMNAMESASCIICONTEXT
BOOL WINAPI EnumWindowStationsW(IN WINSTAENUMPROCW EnumFunc, IN LPARAM Context)
BOOL CALLBACK EnumNamesCallback(LPWSTR Name, LPARAM Param)
BOOL WINAPI EnumWindowStationsA(IN WINSTAENUMPROCA EnumFunc, IN LPARAM Context)
struct tagENUMNAMESASCIICONTEXT ENUMNAMESASCIICONTEXT
HWINSTA WINAPI CreateWindowStationA(IN LPCSTR lpwinsta OPTIONAL, IN DWORD dwReserved, IN ACCESS_MASK dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpsa OPTIONAL)
BOOL WINAPI SetWindowStationUser(IN HWINSTA hWindowStation, IN PLUID pluid, IN PSID psid OPTIONAL, IN DWORD size)
HWINSTA WINAPI OpenWindowStationA(IN LPCSTR lpszWinSta, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess)
BOOL WINAPI GetWinStationInfo(PVOID pUnknown)
HWINSTA WINAPI CreateWindowStationW(IN LPCWSTR lpwinsta OPTIONAL, IN DWORD dwReserved, IN ACCESS_MASK dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpsa OPTIONAL)
BOOL FASTCALL EnumNamesW(HWINSTA WindowStation, NAMEENUMPROCW EnumFunc, LPARAM Context, BOOL Desktops)
VOID FASTCALL Logon(BOOL IsLogon)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
HWINSTA WINAPI GetProcessWindowStation(void)
BOOL(CALLBACK * NAMEENUMPROCA)(LPSTR, LPARAM)
BOOL(CALLBACK * NAMEENUMPROCW)(LPWSTR, LPARAM)
NAMEENUMPROCA WINSTAENUMPROCA
NAMEENUMPROCW WINSTAENUMPROCW
#define RtlEqualLuid(Luid1, Luid2)