dlls/winsta: add initial winsta.h (try 2)

Austin English austinenglish at gmail.com
Wed Jun 3 21:57:06 CDT 2015


Try 2:
move to dlls/winsta/winsta.h
fix anonymous union
updated TS_ALL_PROCESSES_INFO to one from
https://msdn.microsoft.com/en-us/library/cc248681.aspx
update winsta.spec for WinStationGetProcessSid

-- 
-Austin
-------------- next part --------------
commit 71a6e0725d99059ba33849eead3f115a456dee28
Author: Austin English <austinenglish at gmail.com>
Date:   Wed Jun 3 21:05:33 2015 -0500

    dlls/winsta: add winsta.h header

diff --git a/dlls/winsta/main.c b/dlls/winsta/main.c
index 46a4ce7..0b51795 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 0000000..a40075d
--- /dev/null
+++ b/dlls/winsta/winsta.h
@@ -0,0 +1,94 @@
+/*
+ * 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 process_info;
+  DWORD sid_size;
+  PBYTE sid;
+} 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 5854d83..30aa6b5 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


More information about the wine-patches mailing list