| /* | |
| * 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 */ |