123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef _INC_WTSAPI
- #define _INC_WTSAPI
- #include <_mingw_unicode.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define WTS_CURRENT_SERVER ((HANDLE)NULL)
- #define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
- #define WTS_CURRENT_SERVER_NAME (NULL)
- #define WTS_CURRENT_SESSION ((DWORD)-1)
- #ifndef IDTIMEOUT
- #define IDTIMEOUT 32000
- #endif
- #ifndef IDASYNC
- #define IDASYNC 32001
- #endif
- #define WTS_WSD_LOGOFF 0x1
- #define WTS_WSD_SHUTDOWN 0x2
- #define WTS_WSD_REBOOT 0x4
- #define WTS_WSD_POWEROFF 0x8
- #define WTS_WSD_FASTREBOOT 0x10
- typedef enum _WTS_CONNECTSTATE_CLASS {
- WTSActive,WTSConnected,WTSConnectQuery,WTSShadow,WTSDisconnected,WTSIdle,WTSListen,WTSReset,WTSDown,WTSInit
- } WTS_CONNECTSTATE_CLASS;
- typedef struct _WTS_SERVER_INFOW {
- LPWSTR pServerName;
- } WTS_SERVER_INFOW,*PWTS_SERVER_INFOW;
- typedef struct _WTS_SERVER_INFOA {
- LPSTR pServerName;
- } WTS_SERVER_INFOA,*PWTS_SERVER_INFOA;
- #define WTS_SERVER_INFO __MINGW_NAME_AW(WTS_SERVER_INFO)
- #define PWTS_SERVER_INFO __MINGW_NAME_AW(PWTS_SERVER_INFO)
- typedef struct _WTS_SESSION_INFOW {
- DWORD SessionId;
- LPWSTR pWinStationName;
- WTS_CONNECTSTATE_CLASS State;
- } WTS_SESSION_INFOW,*PWTS_SESSION_INFOW;
- typedef struct _WTS_SESSION_INFOA {
- DWORD SessionId;
- LPSTR pWinStationName;
- WTS_CONNECTSTATE_CLASS State;
- } WTS_SESSION_INFOA,*PWTS_SESSION_INFOA;
- #define WTS_SESSION_INFO __MINGW_NAME_AW(WTS_SESSION_INFO)
- #define PWTS_SESSION_INFO __MINGW_NAME_AW(PWTS_SESSION_INFO)
- typedef struct _WTS_PROCESS_INFOW {
- DWORD SessionId;
- DWORD ProcessId;
- LPWSTR pProcessName;
- PSID pUserSid;
- } WTS_PROCESS_INFOW,*PWTS_PROCESS_INFOW;
- typedef struct _WTS_PROCESS_INFOA {
- DWORD SessionId;
- DWORD ProcessId;
- LPSTR pProcessName;
- PSID pUserSid;
- } WTS_PROCESS_INFOA,*PWTS_PROCESS_INFOA;
- #define WTS_PROCESS_INFO __MINGW_NAME_AW(WTS_PROCESS_INFO)
- #define PWTS_PROCESS_INFO __MINGW_NAME_AW(PWTS_PROCESS_INFO)
- #define WTS_PROTOCOL_TYPE_CONSOLE 0
- #define WTS_PROTOCOL_TYPE_ICA 1
- #define WTS_PROTOCOL_TYPE_RDP 2
- typedef enum _WTS_INFO_CLASS {
- WTSInitialProgram = 0,
- WTSApplicationName = 1,
- WTSWorkingDirectory = 2,
- WTSOEMId = 3,
- WTSSessionId = 4,
- WTSUserName = 5,
- WTSWinStationName = 6,
- WTSDomainName = 7,
- WTSConnectState = 8,
- WTSClientBuildNumber = 9,
- WTSClientName = 10,
- WTSClientDirectory = 11,
- WTSClientProductId = 12,
- WTSClientHardwareId = 13,
- WTSClientAddress = 14,
- WTSClientDisplay = 15,
- WTSClientProtocolType = 16,
- WTSIdleTime = 17,
- WTSLogonTime = 18,
- WTSIncomingBytes = 19,
- WTSOutgoingBytes = 20,
- WTSIncomingFrames = 21,
- WTSOutgoingFrames = 22,
- WTSClientInfo = 23,
- WTSSessionInfo = 24
- } WTS_INFO_CLASS;
- typedef struct _WTS_CLIENT_ADDRESS {
- DWORD AddressFamily;
- BYTE Address[20];
- } WTS_CLIENT_ADDRESS,*PWTS_CLIENT_ADDRESS;
- typedef struct _WTS_CLIENT_DISPLAY {
- DWORD HorizontalResolution;
- DWORD VerticalResolution;
- DWORD ColorDepth;
- } WTS_CLIENT_DISPLAY,*PWTS_CLIENT_DISPLAY;
- typedef enum _WTS_CONFIG_CLASS {
- WTSUserConfigInitialProgram,WTSUserConfigWorkingDirectory,WTSUserConfigfInheritInitialProgram,WTSUserConfigfAllowLogonTerminalServer,
- WTSUserConfigTimeoutSettingsConnections,WTSUserConfigTimeoutSettingsDisconnections,WTSUserConfigTimeoutSettingsIdle,
- WTSUserConfigfDeviceClientDrives,WTSUserConfigfDeviceClientPrinters,WTSUserConfigfDeviceClientDefaultPrinter,WTSUserConfigBrokenTimeoutSettings,
- WTSUserConfigReconnectSettings,WTSUserConfigModemCallbackSettings,WTSUserConfigModemCallbackPhoneNumber,WTSUserConfigShadowingSettings,
- WTSUserConfigTerminalServerProfilePath,WTSUserConfigTerminalServerHomeDir,WTSUserConfigTerminalServerHomeDirDrive,
- WTSUserConfigfTerminalServerRemoteHomeDir
- } WTS_CONFIG_CLASS;
- #define WTS_EVENT_NONE 0x0
- #define WTS_EVENT_CREATE 0x1
- #define WTS_EVENT_DELETE 0x2
- #define WTS_EVENT_RENAME 0x4
- #define WTS_EVENT_CONNECT 0x8
- #define WTS_EVENT_DISCONNECT 0x10
- #define WTS_EVENT_LOGON 0x20
- #define WTS_EVENT_LOGOFF 0x40
- #define WTS_EVENT_STATECHANGE 0x80
- #define WTS_EVENT_LICENSE 0x100
- #define WTS_EVENT_ALL 0x7fffffff
- #define WTS_EVENT_FLUSH 0x80000000
- typedef enum _WTS_VIRTUAL_CLASS {
- WTSVirtualClientData,WTSVirtualFileHandle
- } WTS_VIRTUAL_CLASS;
- #define WTSEnumerateServers __MINGW_NAME_AW(WTSEnumerateServers)
- #define WTSOpenServer __MINGW_NAME_AW(WTSOpenServer)
- #define WTSEnumerateSessions __MINGW_NAME_AW(WTSEnumerateSessions)
- #define WTSEnumerateProcesses __MINGW_NAME_AW(WTSEnumerateProcesses)
- #define WTSQuerySessionInformation __MINGW_NAME_AW(WTSQuerySessionInformation)
- #define WTSQueryUserConfig __MINGW_NAME_AW(WTSQueryUserConfig)
- #define WTSSetUserConfig __MINGW_NAME_AW(WTSSetUserConfig)
- #define WTSSendMessage __MINGW_NAME_AW(WTSSendMessage)
- WINBOOL WINAPI WTSEnumerateServersW(LPWSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOW *ppServerInfo,DWORD *pCount);
- WINBOOL WINAPI WTSEnumerateServersA(LPSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOA *ppServerInfo,DWORD *pCount);
- HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName);
- HANDLE WINAPI WTSOpenServerA(LPSTR pServerName);
- VOID WINAPI WTSCloseServer(HANDLE hServer);
- WINBOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOW *ppSessionInfo,DWORD *pCount);
- WINBOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOA *ppSessionInfo,DWORD *pCount);
- WINBOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_PROCESS_INFOW *ppProcessInfo,DWORD *pCount);
- WINBOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_PROCESS_INFOA *ppProcessInfo,DWORD *pCount);
- WINBOOL WINAPI WTSTerminateProcess(HANDLE hServer,DWORD ProcessId,DWORD ExitCode);
- WINBOOL WINAPI WTSQuerySessionInformationW(HANDLE hServer,DWORD SessionId,WTS_INFO_CLASS WTSInfoClass,LPWSTR *ppBuffer,DWORD *pBytesReturned);
- WINBOOL WINAPI WTSQuerySessionInformationA(HANDLE hServer,DWORD SessionId,WTS_INFO_CLASS WTSInfoClass,LPSTR *ppBuffer,DWORD *pBytesReturned);
- WINBOOL WINAPI WTSQueryUserConfigW(LPWSTR pServerName,LPWSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPWSTR *ppBuffer,DWORD *pBytesReturned);
- WINBOOL WINAPI WTSQueryUserConfigA(LPSTR pServerName,LPSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPSTR *ppBuffer,DWORD *pBytesReturned);
- WINBOOL WINAPI WTSSetUserConfigW(LPWSTR pServerName,LPWSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPWSTR pBuffer,DWORD DataLength);
- WINBOOL WINAPI WTSSetUserConfigA(LPSTR pServerName,LPSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPSTR pBuffer,DWORD DataLength);
- WINBOOL WINAPI WTSSendMessageW(HANDLE hServer,DWORD SessionId,LPWSTR pTitle,DWORD TitleLength,LPWSTR pMessage,DWORD MessageLength,DWORD Style,DWORD Timeout,DWORD *pResponse,WINBOOL bWait);
- WINBOOL WINAPI WTSSendMessageA(HANDLE hServer,DWORD SessionId,LPSTR pTitle,DWORD TitleLength,LPSTR pMessage,DWORD MessageLength,DWORD Style,DWORD Timeout,DWORD *pResponse,WINBOOL bWait);
- WINBOOL WINAPI WTSDisconnectSession(HANDLE hServer,DWORD SessionId,WINBOOL bWait);
- WINBOOL WINAPI WTSLogoffSession(HANDLE hServer,DWORD SessionId,WINBOOL bWait);
- WINBOOL WINAPI WTSShutdownSystem(HANDLE hServer,DWORD ShutdownFlag);
- WINBOOL WINAPI WTSWaitSystemEvent(HANDLE hServer,DWORD EventMask,DWORD *pEventFlags);
- HANDLE WINAPI WTSVirtualChannelOpen(HANDLE hServer,DWORD SessionId,LPSTR pVirtualName);
- WINBOOL WINAPI WTSVirtualChannelClose(HANDLE hChannelHandle);
- WINBOOL WINAPI WTSVirtualChannelRead(HANDLE hChannelHandle,ULONG TimeOut,PCHAR Buffer,ULONG BufferSize,PULONG pBytesRead);
- WINBOOL WINAPI WTSVirtualChannelWrite(HANDLE hChannelHandle,PCHAR Buffer,ULONG Length,PULONG pBytesWritten);
- WINBOOL WINAPI WTSVirtualChannelPurgeInput(HANDLE hChannelHandle);
- WINBOOL WINAPI WTSVirtualChannelPurgeOutput(HANDLE hChannelHandle);
- WINBOOL WINAPI WTSVirtualChannelQuery(HANDLE hChannelHandle,WTS_VIRTUAL_CLASS,PVOID *ppBuffer,DWORD *pBytesReturned);
- VOID WINAPI WTSFreeMemory(PVOID pMemory);
- #define NOTIFY_FOR_ALL_SESSIONS 1
- #define NOTIFY_FOR_THIS_SESSION 0
- WINBOOL WINAPI WTSRegisterSessionNotification(HWND hWnd,DWORD dwFlags);
- WINBOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd);
- WINBOOL WINAPI WTSQueryUserToken(ULONG SessionId,PHANDLE phToken);
- #define USERNAME_LENGTH 20
- #define CLIENTNAME_LENGTH 20
- #define CLIENTADDRESS_LENGTH 30
- #define WINSTATIONNAME_LENGTH 32
- #define DOMAIN_LENGTH 17
- #if (_WIN32_WINNT >= 0x0600)
- typedef struct _WTSCLIENTW {
- WCHAR ClientName[CLIENTNAME_LENGTH + 1];
- WCHAR Domain[DOMAIN_LENGTH + 1 ];
- WCHAR UserName[USERNAME_LENGTH + 1];
- WCHAR WorkDirectory[MAX_PATH + 1];
- WCHAR InitialProgram[MAX_PATH + 1];
- BYTE EncryptionLevel;
- ULONG ClientAddressFamily;
- USHORT ClientAddress[CLIENTADDRESS_LENGTH + 1];
- USHORT HRes;
- USHORT VRes;
- USHORT ColorDepth;
- WCHAR ClientDirectory[MAX_PATH + 1];
- ULONG ClientBuildNumber;
- ULONG ClientHardwareId;
- USHORT ClientProductId;
- USHORT OutBufCountHost;
- USHORT OutBufCountClient;
- USHORT OutBufLength;
- WCHAR DeviceId[MAX_PATH + 1];
- } WTSCLIENTW, *PWTSCLIENTW;
- typedef struct _WTSCLIENTA {
- CHAR ClientName[CLIENTNAME_LENGTH + 1];
- CHAR Domain[DOMAIN_LENGTH + 1 ];
- CHAR UserName[USERNAME_LENGTH + 1];
- CHAR WorkDirectory[MAX_PATH + 1];
- CHAR InitialProgram[MAX_PATH + 1];
- BYTE EncryptionLevel;
- ULONG ClientAddressFamily;
- USHORT ClientAddress[CLIENTADDRESS_LENGTH + 1];
- USHORT HRes;
- USHORT VRes;
- USHORT ColorDepth;
- CHAR ClientDirectory[MAX_PATH + 1];
- ULONG ClientBuildNumber;
- ULONG ClientHardwareId;
- USHORT ClientProductId;
- USHORT OutBufCountHost;
- USHORT OutBufCountClient;
- USHORT OutBufLength;
- CHAR DeviceId[MAX_PATH + 1];
- } WTSCLIENTA, *PWTSCLIENTA;
- __MINGW_TYPEDEF_AW(WTSCLIENT)
- __MINGW_TYPEDEF_AW(PWTSCLIENT)
- typedef struct _WTSINFOW {
- WTS_CONNECTSTATE_CLASS State;
- DWORD SessionId;
- DWORD IncomingBytes;
- DWORD OutgoingBytes;
- DWORD IncomingFrames;
- DWORD OutgoingFrames;
- DWORD IncomingCompressedBytes;
- DWORD OutgoingCompressedBytes;
- WCHAR WinStationName[WINSTATIONNAME_LENGTH];
- WCHAR Domain[DOMAIN_LENGTH];
- WCHAR UserName[USERNAME_LENGTH+1];
- LARGE_INTEGER ConnectTime;
- LARGE_INTEGER DisconnectTime;
- LARGE_INTEGER LastInputTime;
- LARGE_INTEGER LogonTime;
- LARGE_INTEGER CurrentTime;
- } WTSINFOW, *PWTSINFOW;
- typedef struct _WTSINFOA {
- WTS_CONNECTSTATE_CLASS State;
- DWORD SessionId;
- DWORD IncomingBytes;
- DWORD OutgoingBytes;
- DWORD IncomingFrames;
- DWORD OutgoingFrames;
- DWORD IncomingCompressedBytes;
- DWORD OutgoingCompressedBytes;
- CHAR WinStationName[WINSTATIONNAME_LENGTH];
- CHAR Domain[DOMAIN_LENGTH];
- CHAR UserName[USERNAME_LENGTH+1];
- LARGE_INTEGER ConnectTime;
- LARGE_INTEGER DisconnectTime;
- LARGE_INTEGER LastInputTime;
- LARGE_INTEGER LogonTime;
- LARGE_INTEGER CurrentTime;
- } WTSINFOA, *PWTSINFOA;
- __MINGW_TYPEDEF_AW(WTSINFO)
- __MINGW_TYPEDEF_AW(PWTSINFO)
- WINBOOL WINAPI WTSConnectSessionA(
- ULONG LogonId,
- ULONG TargetLogonId,
- PSTR pPassword,
- WINBOOL bWait
- );
- WINBOOL WINAPI WTSConnectSessionW(
- ULONG LogonId,
- ULONG TargetLogonId,
- PWSTR pPassword,
- WINBOOL bWait
- );
- WINBOOL WTSRegisterSessionNotificationEx(
- HANDLE hServer,
- HWND hWnd,
- DWORD dwFlags
- );
- WINBOOL WINAPI WTSStartRemoteControlSessionA(
- LPSTR pTargetServerName,
- ULONG TargetLogonId,
- BYTE HotkeyVk,
- USHORT HotkeyModifiers
- );
- WINBOOL WINAPI WTSStartRemoteControlSessionW(
- LPWSTR pTargetServerName,
- ULONG TargetLogonId,
- BYTE HotkeyVk,
- USHORT HotkeyModifiers
- );
- #define WTSStartRemoteControlSession __MINGW_NAME_AW(WTSStartRemoteControlSession)
- #define WTSConnectSession __MINGW_NAME_AW(WTSConnectSession)
- WINBOOL WINAPI WTSStopRemoteControlSession(
- ULONG LogonId
- );
- WINBOOL WINAPI WTSUnRegisterSessionNotificationEx(
- HANDLE hServer,
- HWND hWnd
- );
- HANDLE WINAPI WTSVirtualChannelOpenEx(
- DWORD SessionId,
- LPSTR pVirtualName,
- DWORD flags
- );
- #endif /*(_WIN32_WINNT >= 0x0600)*/
- #ifdef __cplusplus
- }
- #endif
- #endif
|