diff --git a/dlls/winsta/main.c b/dlls/winsta/main.c index 46a4ce70b12..a95782f67c8 100644 --- a/dlls/winsta/main.c +++ b/dlls/winsta/main.c @@ -23,6 +23,7 @@ #include "winbase.h" #include "winternl.h" #include "wine/debug.h" +#include "winsta.h" WINE_DEFAULT_DEBUG_CHANNEL(winsta); @@ -68,7 +69,7 @@ BOOLEAN WINAPI WinStationRegisterConsoleNotification( HANDLE server, HWND hwnd, } BOOLEAN WINAPI WinStationGetAllProcesses( HANDLE server, ULONG level, - ULONG *process_count, void *info ) + ULONG *process_count, PTS_ALL_PROCESSES_INFO *info ) { FIXME( "%p %u %p %p\n", server, level, process_count, info ); *process_count = 0; @@ -76,10 +77,10 @@ BOOLEAN WINAPI WinStationGetAllProcesses( HANDLE server, ULONG level, return FALSE; } -BOOL WINAPI WinStationGetProcessSid( PVOID a, HANDLE server, DWORD process_id, PFILETIME process_start_time, - PBYTE process_user_sid, PDWORD sid_size) +BOOLEAN WINAPI WinStationGetProcessSid( HANDLE server, ULONG process_id, FILETIME *process_start_time, + PVOID process_user_sid, PULONG sid_size ) { - FIXME( "(%p, %p, %d, %p, %p, %p): stub\n", a, server, process_id, process_start_time, process_user_sid, sid_size); + FIXME( "(%p, %d, %p, %p, %p): stub\n", server, process_id, process_start_time, process_user_sid, sid_size); SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); return FALSE; } diff --git a/dlls/winsta/winsta.h b/dlls/winsta/winsta.h new file mode 100644 index 00000000000..a97f4c4d1f5 --- /dev/null +++ b/dlls/winsta/winsta.h @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2015 Austin English + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _WINSTA_H +#define _WINSTA_H + +#define WINSTATIONNAME_LENGTH 32 +typedef WCHAR WINSTATIONNAME[WINSTATIONNAME_LENGTH + 1]; + +typedef enum _WINSTATIONSTATECLASS +{ + State_Active, + State_Connected, + State_ConnectQuery, + State_Shadow, + State_Disconnected, + State_Idle, + State_Listen, + State_Reset, + State_Down, + State_Init +} WINSTATIONSTATECLASS; + +typedef struct _SESSIONIDW +{ + union + { + ULONG SessionId; + ULONG LogonId; + } DUMMYUNIONNAME; + WINSTATIONNAME WinStationName; + WINSTATIONSTATECLASS State; +} SESSIONIDW, *PSESSIONIDW; + +typedef struct _TS_SYS_PROCESS_INFORMATION +{ + ULONG NextEntryOffset; + ULONG NumberOfThreads; + LARGE_INTEGER SpareLi1; + LARGE_INTEGER SpareLi2; + LARGE_INTEGER SpareLi3; + LARGE_INTEGER CreateTime; + LARGE_INTEGER UserTime; + LARGE_INTEGER KernelTime; + UNICODE_STRING ImageName; + LONG BasePriority; + ULONG UniqueProcessId; + ULONG InheritedFromUniqueProcessId; + ULONG HandleCount; + ULONG SessionId; + ULONG SpareUl3; + SIZE_T PeakVirtualSize; + SIZE_T VirtualSize; + ULONG PageFaultCount; + ULONG PeakWorkingSetSize; + ULONG WorkingSetSize; + SIZE_T QuotaPeakPagedPoolUsage; + SIZE_T QuotaPagedPoolUsage; + SIZE_T QuotaPeakNonPagedPoolUsage; + SIZE_T QuotaNonPagedPoolUsage; + SIZE_T PagefileUsage; + SIZE_T PeakPagefileUsage; + SIZE_T PrivatePageCount; +} TS_SYS_PROCESS_INFORMATION, *PTS_SYS_PROCESS_INFORMATION; + +typedef struct _TS_ALL_PROCESSES_INFO +{ + PTS_SYS_PROCESS_INFORMATION pTsProcessInfo; + DWORD SizeOfSid; +#ifdef MIDL_PASS + [size_is(SizeOfSid)] PBYTE pSid; +#else + PBYTE pSid; +#endif +} TS_ALL_PROCESSES_INFO, *PTS_ALL_PROCESSES_INFO; + +BOOLEAN WINAPI WinStationEnumerateW(HANDLE,PSESSIONIDW *,PULONG); +BOOLEAN WINAPI WinStationGetAllProcesses(HANDLE,ULONG,PULONG,PTS_ALL_PROCESSES_INFO *); +BOOLEAN WINAPI WinStationGetProcessSid(HANDLE,ULONG,FILETIME *,PVOID,PULONG); +BOOLEAN WINAPI WinStationQueryInformationW(HANDLE,ULONG,WINSTATIONINFOCLASS,PVOID,ULONG,PULONG); +BOOLEAN WINAPI WinStationRegisterConsoleNotification(HANDLE,HWND,ULONG); + +#endif /* _WINSTA_H */ diff --git a/dlls/winsta/winsta.spec b/dlls/winsta/winsta.spec index 5854d83cf40..30aa6b5466a 100644 --- a/dlls/winsta/winsta.spec +++ b/dlls/winsta/winsta.spec @@ -39,7 +39,7 @@ @ stub WinStationGetLanAdapterNameA @ stub WinStationGetLanAdapterNameW @ stub WinStationGetMachinePolicy -@ stdcall WinStationGetProcessSid(ptr ptr long ptr ptr ptr) +@ stdcall WinStationGetProcessSid(ptr long ptr ptr ptr) @ stub WinStationGetTermSrvCountersValue @ stub WinStationInstallLicense @ stub WinStationIsHelpAssistantSession