888 lines
34 KiB
C
888 lines
34 KiB
C
/*
|
|
* wtsapi32.h Windows Terminal Server (WTS) functions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _INC_WTSAPI
|
|
#define _INC_WTSAPI
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Special values */
|
|
#define WTS_CURRENT_SERVER NULL
|
|
#define WTS_CURRENT_SERVER_HANDLE NULL
|
|
#define WTS_CURRENT_SERVER_NAME NULL
|
|
#define WTS_CURRENT_SESSION 0xFFFFFFFFL
|
|
#define WTS_ANY_SESSION 0xFFFFFFFEL
|
|
|
|
/* WTS shutdown flags */
|
|
#define WTS_WSD_LOGOFF 0x00000001L
|
|
#define WTS_WSD_SHUTDOWN 0x00000002L
|
|
#define WTS_WSD_REBOOT 0x00000004L
|
|
#define WTS_WSD_POWEROFF 0x00000008L
|
|
#define WTS_WSD_FASTREBOOT 0x00000010L
|
|
|
|
/* Maximum string lengths */
|
|
#ifndef __HYDRIX_H__
|
|
#define USERNAME_LENGTH 20
|
|
#define CLIENTNAME_LENGTH 20
|
|
#define CLIENTADDRESS_LENGTH 30
|
|
#endif
|
|
#define MAX_ELAPSED_TIME_LENGTH 15
|
|
#define MAX_DATE_TIME_LENGTH 56
|
|
#define WINSTATIONNAME_LENGTH 32
|
|
#define DOMAIN_LENGTH 17
|
|
#define WTS_DRIVE_LENGTH 3
|
|
#define WTS_LISTENER_NAME_LENGTH 32
|
|
#define WTS_COMMENT_LENGTH 60
|
|
#define PRODUCTINFO_COMPANYNAME_LENGTH 256
|
|
#define PRODUCTINFO_PRODUCTID_LENGTH 4
|
|
#define VALIDATIONINFORMATION_LICENSE_LENGTH 16384
|
|
#define VALIDATIONINFORMATION_HARDWAREID_LENGTH 20
|
|
|
|
/* WTSCreateListener() flags */
|
|
#define WTS_LISTENER_CREATE 0x00000001L
|
|
#define WTS_LISTENER_UPDATE 0x00000002L
|
|
|
|
/* WTS access rights */
|
|
#define WTS_SECURITY_QUERY_INFORMATION 0x0001L
|
|
#define WTS_SECURITY_SET_INFORMATION 0x0002L
|
|
#define WTS_SECURITY_RESET 0x0004L
|
|
#define WTS_SECURITY_VIRTUAL_CHANNELS 0x0008L
|
|
#define WTS_SECURITY_REMOTE_CONTROL 0x0010L
|
|
#define WTS_SECURITY_LOGON 0x0020L
|
|
#define WTS_SECURITY_LOGOFF 0x0040L
|
|
#define WTS_SECURITY_MESSAGE 0x0080L
|
|
#define WTS_SECURITY_CONNECT 0x0100L
|
|
#define WTS_SECURITY_DISCONNECT 0x0200L
|
|
#define WTS_SECURITY_GUEST_ACCESS WTS_SECURITY_LOGON
|
|
#define WTS_SECURITY_CURRENT_GUEST_ACCESS \
|
|
(WTS_SECURITY_VIRTUAL_CHANNELS | WTS_SECURITY_LOGOFF)
|
|
#define WTS_SECURITY_USER_ACCESS \
|
|
(WTS_SECURITY_CURRENT_GUEST_ACCESS | WTS_SECURITY_QUERY_INFORMATION | \
|
|
WTS_SECURITY_CONNECT)
|
|
#define WTS_SECURITY_CURRENT_USER_ACCESS \
|
|
(WTS_SECURITY_SET_INFORMATION | WTS_SECURITY_RESET | \
|
|
WTS_SECURITY_VIRTUAL_CHANNELS | WTS_SECURITY_LOGOFF | WTS_SECURITY_DISCONNECT)
|
|
#define WTS_SECURITY_ALL_ACCESS \
|
|
(STANDARD_RIGHTS_REQUIRED | WTS_SECURITY_QUERY_INFORMATION | \
|
|
WTS_SECURITY_SET_INFORMATION | WTS_SECURITY_RESET | WTS_SECURITY_VIRTUAL_CHANNELS | \
|
|
WTS_SECURITY_REMOTE_CONTROL | WTS_SECURITY_LOGON | WTS_SECURITY_MESSAGE | \
|
|
WTS_SECURITY_CONNECT | WTS_SECURITY_DISCONNECT)
|
|
|
|
/* WTS protocol types */
|
|
#define WTS_PROTOCOL_TYPE_CONSOLE 0
|
|
#define WTS_PROTOCOL_TYPE_ICA 1
|
|
#define WTS_PROTOCOL_TYPE_RDP 2
|
|
|
|
/* WTS session state flags */
|
|
#define WTS_SESSIONSTATE_UNKNOWN 0xFFFFFFFFL
|
|
#define WTS_SESSIONSTATE_LOCK 0x00000000L
|
|
#define WTS_SESSIONSTATE_UNLOCK 0x00000001L
|
|
|
|
/* WTS event flags */
|
|
#define WTS_EVENT_NONE 0x00000000L
|
|
#define WTS_EVENT_CREATE 0x00000001L
|
|
#define WTS_EVENT_DELETE 0x00000002L
|
|
#define WTS_EVENT_RENAME 0x00000004L
|
|
#define WTS_EVENT_CONNECT 0x00000008L
|
|
#define WTS_EVENT_DISCONNECT 0x00000010L
|
|
#define WTS_EVENT_LOGON 0x00000020L
|
|
#define WTS_EVENT_LOGOFF 0x00000040L
|
|
#define WTS_EVENT_STATECHANGE 0x00000080L
|
|
#define WTS_EVENT_LICENSE 0x00000100L
|
|
#define WTS_EVENT_ALL 0x7FFFFFFFL
|
|
#define WTS_EVENT_FLUSH 0x80000000L
|
|
|
|
/* WTSStartRemoteControlSession() hotkey modifiers */
|
|
#define REMOTECONTROL_KBDSHIFT_HOTKEY 0x0001
|
|
#define REMOTECONTROL_KBDCTRL_HOTKEY 0x0002
|
|
#define REMOTECONTROL_KBDALT_HOTKEY 0x0004
|
|
|
|
/* WTSVirtualChannelOpenEx() flags */
|
|
#define WTS_CHANNEL_OPTION_DYNAMIC 0x00000001L
|
|
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW 0x00000000L
|
|
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED 0x00000002L
|
|
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH 0x00000004L
|
|
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL 0x00000006L
|
|
#define WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS 0x00000008L
|
|
|
|
/* Console notification flags */
|
|
#define NOTIFY_FOR_THIS_SESSION 0
|
|
#define NOTIFY_FOR_ALL_SESSIONS 1
|
|
|
|
/* WTS process information levels */
|
|
#define WTS_PROCESS_INFO_LEVEL_0 0L
|
|
#define WTS_PROCESS_INFO_LEVEL_1 1L
|
|
|
|
/* WTS connect state classes */
|
|
typedef enum _WTS_CONNECTSTATE_CLASS {
|
|
WTSActive = 0,
|
|
WTSConnected = 1,
|
|
WTSConnectQuery = 2,
|
|
WTSShadow = 3,
|
|
WTSDisconnected = 4,
|
|
WTSIdle = 5,
|
|
WTSListen = 6,
|
|
WTSReset = 7,
|
|
WTSDown = 8,
|
|
WTSInit = 9
|
|
} WTS_CONNECTSTATE_CLASS;
|
|
|
|
/* WTS server information */
|
|
typedef struct _WTS_SERVER_INFOA {
|
|
LPSTR pServerName;
|
|
} WTS_SERVER_INFOA;
|
|
typedef WTS_SERVER_INFOA *PWTS_SERVER_INFOA;
|
|
typedef struct _WTS_SERVER_INFOW {
|
|
LPWSTR pServerName;
|
|
} WTS_SERVER_INFOW;
|
|
typedef WTS_SERVER_INFOW *PWTS_SERVER_INFOW;
|
|
#ifdef UNICODE
|
|
typedef WTS_SERVER_INFOW WTS_SERVER_INFO;
|
|
typedef PWTS_SERVER_INFOW PWTS_SERVER_INFO;
|
|
#else
|
|
typedef WTS_SERVER_INFOA WTS_SERVER_INFO;
|
|
typedef PWTS_SERVER_INFOA PWTS_SERVER_INFO;
|
|
#endif
|
|
|
|
/* WTS session information */
|
|
typedef struct _WTS_SESSION_INFOA {
|
|
DWORD SessionId;
|
|
LPSTR pWinStationName;
|
|
WTS_CONNECTSTATE_CLASS State;
|
|
} WTS_SESSION_INFOA;
|
|
typedef WTS_SESSION_INFOA *PWTS_SESSION_INFOA;
|
|
typedef struct _WTS_SESSION_INFOW {
|
|
DWORD SessionId;
|
|
LPWSTR pWinStationName;
|
|
WTS_CONNECTSTATE_CLASS State;
|
|
} WTS_SESSION_INFOW;
|
|
typedef WTS_SESSION_INFOW *PWTS_SESSION_INFOW;
|
|
#ifdef UNICODE
|
|
typedef WTS_SESSION_INFOW WTS_SESSION_INFO;
|
|
typedef PWTS_SESSION_INFOW PWTS_SESSION_INFO;
|
|
#else
|
|
typedef WTS_SESSION_INFOA WTS_SESSION_INFO;
|
|
typedef PWTS_SESSION_INFOA PWTS_SESSION_INFO;
|
|
#endif
|
|
|
|
/* WTS session information (level 1) */
|
|
typedef struct _WTS_SESSION_INFO_1A {
|
|
DWORD ExecEnvId;
|
|
WTS_CONNECTSTATE_CLASS State;
|
|
DWORD SessionId;
|
|
LPSTR pSessionName;
|
|
LPSTR pHostName;
|
|
LPSTR pUserName;
|
|
LPSTR pDomainName;
|
|
LPSTR pFarmName;
|
|
} WTS_SESSION_INFO_1A;
|
|
typedef WTS_SESSION_INFO_1A *PWTS_SESSION_INFO_1A;
|
|
typedef struct _WTS_SESSION_INFO_1W {
|
|
DWORD ExecEnvId;
|
|
WTS_CONNECTSTATE_CLASS State;
|
|
DWORD SessionId;
|
|
LPWSTR pSessionName;
|
|
LPWSTR pHostName;
|
|
LPWSTR pUserName;
|
|
LPWSTR pDomainName;
|
|
LPWSTR pFarmName;
|
|
} WTS_SESSION_INFO_1W;
|
|
typedef WTS_SESSION_INFO_1W *PWTS_SESSION_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef WTS_SESSION_INFO_1W WTS_SESSION_INFO_1;
|
|
typedef PWTS_SESSION_INFO_1W PWTS_SESSION_INFO_1;
|
|
#else
|
|
typedef WTS_SESSION_INFO_1A WTS_SESSION_INFO_1;
|
|
typedef PWTS_SESSION_INFO_1A PWTS_SESSION_INFO_1;
|
|
#endif
|
|
|
|
/* WTS process information */
|
|
typedef struct _WTS_PROCESS_INFOA {
|
|
DWORD SessionId;
|
|
DWORD ProcessId;
|
|
LPSTR pProcessName;
|
|
PSID pUserSid;
|
|
} WTS_PROCESS_INFOA;
|
|
typedef WTS_PROCESS_INFOA *PWTS_PROCESS_INFOA;
|
|
typedef struct _WTS_PROCESS_INFOW {
|
|
DWORD SessionId;
|
|
DWORD ProcessId;
|
|
LPWSTR pProcessName;
|
|
PSID pUserSid;
|
|
} WTS_PROCESS_INFOW;
|
|
typedef WTS_PROCESS_INFOW *PWTS_PROCESS_INFOW;
|
|
#ifdef UNICODE
|
|
typedef WTS_PROCESS_INFOW WTS_PROCESS_INFO;
|
|
typedef PWTS_PROCESS_INFOW PWTS_PROCESS_INFO;
|
|
#else
|
|
typedef WTS_PROCESS_INFOA WTS_PROCESS_INFO;
|
|
typedef PWTS_PROCESS_INFOA PWTS_PROCESS_INFO;
|
|
#endif
|
|
|
|
/* WTS information classes */
|
|
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,
|
|
WTSSessionInfoEx = 25,
|
|
WTSConfigInfo = 26,
|
|
WTSValidationInfo = 27,
|
|
WTSSessionAddressV4 = 28,
|
|
WTSIsRemoteSession = 29
|
|
} WTS_INFO_CLASS;
|
|
|
|
/* WTS configuration information */
|
|
typedef struct _WTSCONFIGINFOA {
|
|
ULONG version;
|
|
ULONG fConnectClientDrivesAtLogon;
|
|
ULONG fConnectPrinterAtLogon;
|
|
ULONG fDisablePrinterRedirection;
|
|
ULONG fDisableDefaultMainClientPrinter;
|
|
ULONG ShadowSettings;
|
|
CHAR LogonUserName[USERNAME_LENGTH + 1];
|
|
CHAR LogonDomain[DOMAIN_LENGTH + 1];
|
|
CHAR WorkDirectory[MAX_PATH + 1];
|
|
CHAR InitialProgram[MAX_PATH + 1];
|
|
CHAR ApplicationName[MAX_PATH + 1];
|
|
} WTSCONFIGINFOA;
|
|
typedef WTSCONFIGINFOA *PWTSCONFIGINFOA;
|
|
typedef struct _WTSCONFIGINFOW {
|
|
ULONG version;
|
|
ULONG fConnectClientDrivesAtLogon;
|
|
ULONG fConnectPrinterAtLogon;
|
|
ULONG fDisablePrinterRedirection;
|
|
ULONG fDisableDefaultMainClientPrinter;
|
|
ULONG ShadowSettings;
|
|
WCHAR LogonUserName[USERNAME_LENGTH + 1];
|
|
WCHAR LogonDomain[DOMAIN_LENGTH + 1];
|
|
WCHAR WorkDirectory[MAX_PATH + 1];
|
|
WCHAR InitialProgram[MAX_PATH + 1];
|
|
WCHAR ApplicationName[MAX_PATH + 1];
|
|
} WTSCONFIGINFOW;
|
|
typedef WTSCONFIGINFOW *PWTSCONFIGINFOW;
|
|
#ifdef UNICODE
|
|
typedef WTSCONFIGINFOW WTSCONFIGINFO;
|
|
typedef PWTSCONFIGINFOW PWTSCONFIGINFO;
|
|
#else
|
|
typedef WTSCONFIGINFOA WTSCONFIGINFO;
|
|
typedef PWTSCONFIGINFOA PWTSCONFIGINFO;
|
|
#endif
|
|
|
|
/* WTS information */
|
|
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;
|
|
typedef WTSINFOA *PWTSINFOA;
|
|
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;
|
|
typedef WTSINFOW *PWTSINFOW;
|
|
#ifdef UNICODE
|
|
typedef WTSINFOW WTSINFO;
|
|
typedef PWTSINFOW PWTSINFO;
|
|
#else
|
|
typedef WTSINFOA WTSINFO;
|
|
typedef PWTSINFOA PWTSINFO;
|
|
#endif
|
|
|
|
/* WTS information (extended version) (level 1) */
|
|
typedef struct _WTSINFOEX_LEVEL1_A {
|
|
ULONG SessionId;
|
|
WTS_CONNECTSTATE_CLASS SessionState;
|
|
LONG SessionFlags;
|
|
CHAR WinStationName[WINSTATIONNAME_LENGTH + 1];
|
|
CHAR UserName[USERNAME_LENGTH + 1];
|
|
CHAR DomainName[DOMAIN_LENGTH + 1];
|
|
LARGE_INTEGER LogonTime;
|
|
LARGE_INTEGER ConnectTime;
|
|
LARGE_INTEGER DisconnectTime;
|
|
LARGE_INTEGER LastInputTime;
|
|
LARGE_INTEGER CurrentTime;
|
|
DWORD IncomingBytes;
|
|
DWORD OutgoingBytes;
|
|
DWORD IncomingFrames;
|
|
DWORD OutgoingFrames;
|
|
DWORD IncomingCompressedBytes;
|
|
DWORD OutgoingCompressedBytes;
|
|
} WTSINFOEX_LEVEL1_A;
|
|
typedef WTSINFOEX_LEVEL1_A *PWTSINFOEX_LEVEL1_A;
|
|
typedef struct _WTSINFOEX_LEVEL1_W {
|
|
ULONG SessionId;
|
|
WTS_CONNECTSTATE_CLASS SessionState;
|
|
LONG SessionFlags;
|
|
WCHAR WinStationName[WINSTATIONNAME_LENGTH + 1];
|
|
WCHAR UserName[USERNAME_LENGTH + 1];
|
|
WCHAR DomainName[DOMAIN_LENGTH + 1];
|
|
LARGE_INTEGER LogonTime;
|
|
LARGE_INTEGER ConnectTime;
|
|
LARGE_INTEGER DisconnectTime;
|
|
LARGE_INTEGER LastInputTime;
|
|
LARGE_INTEGER CurrentTime;
|
|
DWORD IncomingBytes;
|
|
DWORD OutgoingBytes;
|
|
DWORD IncomingFrames;
|
|
DWORD OutgoingFrames;
|
|
DWORD IncomingCompressedBytes;
|
|
DWORD OutgoingCompressedBytes;
|
|
} WTSINFOEX_LEVEL1_W;
|
|
typedef WTSINFOEX_LEVEL1_W *PWTSINFOEX_LEVEL1_W;
|
|
#ifdef UNICODE
|
|
typedef WTSINFOEX_LEVEL1_W WTSINFOEX_LEVEL1;
|
|
typedef PWTSINFOEX_LEVEL1_W PWTSINFOEX_LEVEL1;
|
|
#else
|
|
typedef WTSINFOEX_LEVEL1_A WTSINFOEX_LEVEL1;
|
|
typedef PWTSINFOEX_LEVEL1_A PWTSINFOEX_LEVEL1;
|
|
#endif
|
|
|
|
/* WTS information (extended version) (all levels) */
|
|
typedef union _WTSINFOEX_LEVEL_A {
|
|
WTSINFOEX_LEVEL1_A WTSInfoExLevel1;
|
|
} WTSINFOEX_LEVEL_A;
|
|
typedef WTSINFOEX_LEVEL_A *PWTSINFOEX_LEVEL_A;
|
|
typedef union _WTSINFOEX_LEVEL_W {
|
|
WTSINFOEX_LEVEL1_W WTSInfoExLevel1;
|
|
} WTSINFOEX_LEVEL_W;
|
|
typedef WTSINFOEX_LEVEL_W *PWTSINFOEX_LEVEL_W;
|
|
#ifdef UNICODE
|
|
typedef WTSINFOEX_LEVEL_W WTSINFOEX_LEVEL;
|
|
typedef PWTSINFOEX_LEVEL_W PWTSINFOEX_LEVEL;
|
|
#else
|
|
typedef WTSINFOEX_LEVEL_A WTSINFOEX_LEVEL;
|
|
typedef PWTSINFOEX_LEVEL_A PWTSINFOEX_LEVEL;
|
|
#endif
|
|
|
|
/* WTS information (extended version) */
|
|
typedef struct _WTSINFOEXA {
|
|
DWORD Level;
|
|
WTSINFOEX_LEVEL_A Data;
|
|
} WTSINFOEXA;
|
|
typedef WTSINFOEXA *PWTSINFOEXA;
|
|
typedef struct _WTSINFOEXW {
|
|
DWORD Level;
|
|
WTSINFOEX_LEVEL_W Data;
|
|
} WTSINFOEXW;
|
|
typedef WTSINFOEXW *PWTSINFOEXW;
|
|
#ifdef UNICODE
|
|
typedef WTSINFOEXW WTSINFOEX;
|
|
typedef PWTSINFOEXW PWTSINFOEX;
|
|
#else
|
|
typedef WTSINFOEXA WTSINFOEX;
|
|
typedef PWTSINFOEXA PWTSINFOEX;
|
|
#endif
|
|
|
|
/* WTS client information */
|
|
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;
|
|
typedef WTSCLIENTA *PWTSCLIENTA;
|
|
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;
|
|
typedef WTSCLIENTW *PWTSCLIENTW;
|
|
#ifdef UNICODE
|
|
typedef WTSCLIENTW WTSCLIENT;
|
|
typedef PWTSCLIENTW PWTSCLIENT;
|
|
#else
|
|
typedef WTSCLIENTA WTSCLIENT;
|
|
typedef PWTSCLIENTA PWTSCLIENT;
|
|
#endif
|
|
|
|
/* WTS product information */
|
|
typedef struct _WTS_PRODUCT_INFOA {
|
|
CHAR CompanyName[PRODUCTINFO_COMPANYNAME_LENGTH];
|
|
CHAR ProductID[PRODUCTINFO_PRODUCTID_LENGTH];
|
|
} PRODUCT_INFOA;
|
|
typedef struct _WTS_PRODUCT_INFOW {
|
|
WCHAR CompanyName[PRODUCTINFO_COMPANYNAME_LENGTH];
|
|
WCHAR ProductID[PRODUCTINFO_PRODUCTID_LENGTH];
|
|
} PRODUCT_INFOW;
|
|
#ifdef UNICODE
|
|
typedef PRODUCT_INFOW PRODUCT_INFO;
|
|
#else
|
|
typedef PRODUCT_INFOA PRODUCT_INFO;
|
|
#endif
|
|
|
|
/* WTS validation information */
|
|
typedef struct _WTS_VALIDATION_INFORMATIONA {
|
|
PRODUCT_INFOA ProductInfo;
|
|
BYTE License[VALIDATIONINFORMATION_LICENSE_LENGTH];
|
|
DWORD LicenseLength;
|
|
BYTE HardwareID[VALIDATIONINFORMATION_HARDWAREID_LENGTH];
|
|
DWORD HardwareIDLength;
|
|
} WTS_VALIDATION_INFORMATIONA;
|
|
typedef WTS_VALIDATION_INFORMATIONA *PWTS_VALIDATION_INFORMATIONA;
|
|
typedef struct _WTS_VALIDATION_INFORMATIONW {
|
|
PRODUCT_INFOW ProductInfo;
|
|
BYTE License[VALIDATIONINFORMATION_LICENSE_LENGTH];
|
|
DWORD LicenseLength;
|
|
BYTE HardwareID[VALIDATIONINFORMATION_HARDWAREID_LENGTH];
|
|
DWORD HardwareIDLength;
|
|
} WTS_VALIDATION_INFORMATIONW;
|
|
typedef WTS_VALIDATION_INFORMATIONW *PWTS_VALIDATION_INFORMATIONW;
|
|
#ifdef UNICODE
|
|
typedef WTS_VALIDATION_INFORMATIONW WTS_VALIDATION_INFORMATION;
|
|
typedef PWTS_VALIDATION_INFORMATIONW PWTS_VALIDATION_INFORMATION;
|
|
#else
|
|
typedef WTS_VALIDATION_INFORMATIONA WTS_VALIDATION_INFORMATION;
|
|
typedef PWTS_VALIDATION_INFORMATIONA PWTS_VALIDATION_INFORMATION;
|
|
#endif
|
|
|
|
/* WTS client address information */
|
|
typedef struct _WTS_CLIENT_ADDRESS {
|
|
DWORD AddressFamily;
|
|
BYTE Address[20];
|
|
} WTS_CLIENT_ADDRESS;
|
|
typedef WTS_CLIENT_ADDRESS *PWTS_CLIENT_ADDRESS;
|
|
|
|
/* WTS client display information */
|
|
typedef struct _WTS_CLIENT_DISPLAY {
|
|
DWORD HorizontalResolution;
|
|
DWORD VerticalResolution;
|
|
DWORD ColorDepth;
|
|
} WTS_CLIENT_DISPLAY;
|
|
typedef WTS_CLIENT_DISPLAY *PWTS_CLIENT_DISPLAY;
|
|
|
|
/* WTS configuration classes */
|
|
typedef enum _WTS_CONFIG_CLASS {
|
|
WTSUserConfigInitialProgram = 0,
|
|
WTSUserConfigWorkingDirectory = 1,
|
|
WTSUserConfigfInheritInitialProgram = 2,
|
|
WTSUserConfigfAllowLogonTerminalServer = 3,
|
|
WTSUserConfigTimeoutSettingsConnections = 4,
|
|
WTSUserConfigTimeoutSettingsDisconnections = 5,
|
|
WTSUserConfigTimeoutSettingsIdle = 6,
|
|
WTSUserConfigfDeviceClientDrives = 7,
|
|
WTSUserConfigfDeviceClientPrinters = 8,
|
|
WTSUserConfigfDeviceClientDefaultPrinter = 9,
|
|
WTSUserConfigBrokenTimeoutSettings = 10,
|
|
WTSUserConfigReconnectSettings = 11,
|
|
WTSUserConfigModemCallbackSettings = 12,
|
|
WTSUserConfigModemCallbackPhoneNumber = 13,
|
|
WTSUserConfigShadowingSettings = 14,
|
|
WTSUserConfigTerminalServerProfilePath = 15,
|
|
WTSUserConfigTerminalServerHomeDir = 16,
|
|
WTSUserConfigTerminalServerHomeDirDrive = 17,
|
|
WTSUserConfigfTerminalServerRemoteHomeDir = 18,
|
|
WTSUserConfigUser = 19
|
|
} WTS_CONFIG_CLASS;
|
|
|
|
/* WTS configuration sources */
|
|
typedef enum _WTS_CONFIG_SOURCE {
|
|
WTSUserConfigSourceSAM = 0
|
|
} WTS_CONFIG_SOURCE;
|
|
|
|
/* WTS user configuration */
|
|
typedef struct _WTSUSERCONFIGA {
|
|
DWORD Source;
|
|
DWORD InheritInitialProgram;
|
|
DWORD AllowLogonTerminalServer;
|
|
DWORD TimeoutSettingsConnections;
|
|
DWORD TimeoutSettingsDisconnections;
|
|
DWORD TimeoutSettingsIdle;
|
|
DWORD DeviceClientDrives;
|
|
DWORD DeviceClientPrinters;
|
|
DWORD ClientDefaultPrinter;
|
|
DWORD BrokenTimeoutSettings;
|
|
DWORD ReconnectSettings;
|
|
DWORD ShadowingSettings;
|
|
DWORD TerminalServerRemoteHomeDir;
|
|
CHAR InitialProgram[MAX_PATH + 1];
|
|
CHAR WorkDirectory[MAX_PATH + 1];
|
|
CHAR TerminalServerProfilePath[MAX_PATH + 1];
|
|
CHAR TerminalServerHomeDir[MAX_PATH + 1];
|
|
CHAR TerminalServerHomeDirDrive[WTS_DRIVE_LENGTH + 1];
|
|
} WTSUSERCONFIGA;
|
|
typedef WTSUSERCONFIGA *PWTSUSERCONFIGA;
|
|
typedef struct _WTSUSERCONFIGW {
|
|
DWORD Source;
|
|
DWORD InheritInitialProgram;
|
|
DWORD AllowLogonTerminalServer;
|
|
DWORD TimeoutSettingsConnections;
|
|
DWORD TimeoutSettingsDisconnections;
|
|
DWORD TimeoutSettingsIdle;
|
|
DWORD DeviceClientDrives;
|
|
DWORD DeviceClientPrinters;
|
|
DWORD ClientDefaultPrinter;
|
|
DWORD BrokenTimeoutSettings;
|
|
DWORD ReconnectSettings;
|
|
DWORD ShadowingSettings;
|
|
DWORD TerminalServerRemoteHomeDir;
|
|
WCHAR InitialProgram[MAX_PATH + 1];
|
|
WCHAR WorkDirectory[MAX_PATH + 1];
|
|
WCHAR TerminalServerProfilePath[MAX_PATH + 1];
|
|
WCHAR TerminalServerHomeDir[MAX_PATH + 1];
|
|
WCHAR TerminalServerHomeDirDrive[WTS_DRIVE_LENGTH + 1];
|
|
} WTSUSERCONFIGW;
|
|
typedef WTSUSERCONFIGW *PWTSUSERCONFIGW;
|
|
#ifdef UNICODE
|
|
typedef WTSUSERCONFIGW WTSUSERCONFIG;
|
|
typedef PWTSUSERCONFIGW PWTSUSERCONFIG;
|
|
#else
|
|
typedef WTSUSERCONFIGA WTSUSERCONFIG;
|
|
typedef PWTSUSERCONFIGA PWTSUSERCONFIG;
|
|
#endif
|
|
|
|
/* WTS virtual classes */
|
|
typedef enum _WTS_VIRTUAL_CLASS {
|
|
WTSVirtualClientData = 0,
|
|
WTSVirtualFileHandle = 1
|
|
} WTS_VIRTUAL_CLASS;
|
|
|
|
/* WTS session address */
|
|
typedef struct _WTS_SESSION_ADDRESS {
|
|
DWORD AddressFamily;
|
|
BYTE Address[20];
|
|
} WTS_SESSION_ADDRESS;
|
|
typedef WTS_SESSION_ADDRESS *PWTS_SESSION_ADDRESS;
|
|
|
|
/* WTS process information (extended version) */
|
|
typedef struct _WTS_PROCESS_INFO_EXA {
|
|
DWORD SessionId;
|
|
DWORD ProcessId;
|
|
LPSTR pProcessName;
|
|
PSID pUserSid;
|
|
DWORD NumberOfThreads;
|
|
DWORD HandleCount;
|
|
DWORD PagefileUsage;
|
|
DWORD PeakPagefileUsage;
|
|
DWORD WorkingSetSize;
|
|
DWORD PeakWorkingSetSize;
|
|
LARGE_INTEGER UserTime;
|
|
LARGE_INTEGER KernelTime;
|
|
} WTS_PROCESS_INFO_EXA;
|
|
typedef WTS_PROCESS_INFO_EXA *PWTS_PROCESS_INFO_EXA;
|
|
typedef struct _WTS_PROCESS_INFO_EXW {
|
|
DWORD SessionId;
|
|
DWORD ProcessId;
|
|
LPWSTR pProcessName;
|
|
PSID pUserSid;
|
|
DWORD NumberOfThreads;
|
|
DWORD HandleCount;
|
|
DWORD PagefileUsage;
|
|
DWORD PeakPagefileUsage;
|
|
DWORD WorkingSetSize;
|
|
DWORD PeakWorkingSetSize;
|
|
LARGE_INTEGER UserTime;
|
|
LARGE_INTEGER KernelTime;
|
|
} WTS_PROCESS_INFO_EXW;
|
|
typedef WTS_PROCESS_INFO_EXW *PWTS_PROCESS_INFO_EXW;
|
|
#ifdef UNICODE
|
|
typedef WTS_PROCESS_INFO_EXW WTS_PROCESS_INFO_EX;
|
|
typedef PWTS_PROCESS_INFO_EXW PWTS_PROCESS_INFO_EX;
|
|
#else
|
|
typedef WTS_PROCESS_INFO_EXA WTS_PROCESS_INFO_EX;
|
|
typedef PWTS_PROCESS_INFO_EXA PWTS_PROCESS_INFO_EX;
|
|
#endif
|
|
|
|
/* WTS type classes */
|
|
typedef enum _WTS_TYPE_CLASS {
|
|
WTSTypeProcessInfoLevel0 = 0,
|
|
WTSTypeProcessInfoLevel1 = 1,
|
|
WTSTypeSessionInfoLevel1 = 2
|
|
} WTS_TYPE_CLASS;
|
|
|
|
/* WTS listener name */
|
|
typedef CHAR WTSLISTENERNAMEA[WTS_LISTENER_NAME_LENGTH + 1];
|
|
typedef WTSLISTENERNAMEA *PWTSLISTENERNAMEA;
|
|
typedef WCHAR WTSLISTENERNAMEW[WTS_LISTENER_NAME_LENGTH + 1];
|
|
typedef WTSLISTENERNAMEW *PWTSLISTENERNAMEW;
|
|
#ifdef UNICODE
|
|
typedef WTSLISTENERNAMEW WTSLISTENERNAME;
|
|
typedef PWTSLISTENERNAMEW PWTSLISTENERNAME;
|
|
#else
|
|
typedef WTSLISTENERNAMEA WTSLISTENERNAME;
|
|
typedef PWTSLISTENERNAMEA PWTSLISTENERNAME;
|
|
#endif
|
|
|
|
/* WTS listener configuration */
|
|
typedef struct _WTSLISTENERCONFIGA {
|
|
ULONG version;
|
|
ULONG fEnableListener;
|
|
ULONG MaxConnectionCount;
|
|
ULONG fPromptForPassword;
|
|
ULONG fInheritColorDepth;
|
|
ULONG ColorDepth;
|
|
ULONG fInheritBrokenTimeoutSettings;
|
|
ULONG BrokenTimeoutSettings;
|
|
ULONG fDisablePrinterRedirection;
|
|
ULONG fDisableDriveRedirection;
|
|
ULONG fDisableComPortRedirection;
|
|
ULONG fDisableLPTPortRedirection;
|
|
ULONG fDisableClipboardRedirection;
|
|
ULONG fDisableAudioRedirection;
|
|
ULONG fDisablePNPRedirection;
|
|
ULONG fDisableDefaultMainClientPrinter;
|
|
ULONG LanAdapter;
|
|
ULONG PortNumber;
|
|
ULONG fInheritShadowSettings;
|
|
ULONG ShadowSettings;
|
|
ULONG TimeoutSettingsConnection;
|
|
ULONG TimeoutSettingsDisconnection;
|
|
ULONG TimeoutSettingsIdle;
|
|
ULONG SecurityLayer;
|
|
ULONG MinEncryptionLevel;
|
|
ULONG UserAuthentication;
|
|
CHAR Comment[WTS_COMMENT_LENGTH + 1];
|
|
CHAR LogonUserName[USERNAME_LENGTH + 1];
|
|
CHAR LogonDomain[DOMAIN_LENGTH + 1];
|
|
CHAR WorkDirectory[MAX_PATH + 1];
|
|
CHAR InitialProgram[MAX_PATH + 1];
|
|
} WTSLISTENERCONFIGA;
|
|
typedef WTSLISTENERCONFIGA *PWTSLISTENERCONFIGA;
|
|
typedef struct _WTSLISTENERCONFIGW {
|
|
ULONG version;
|
|
ULONG fEnableListener;
|
|
ULONG MaxConnectionCount;
|
|
ULONG fPromptForPassword;
|
|
ULONG fInheritColorDepth;
|
|
ULONG ColorDepth;
|
|
ULONG fInheritBrokenTimeoutSettings;
|
|
ULONG BrokenTimeoutSettings;
|
|
ULONG fDisablePrinterRedirection;
|
|
ULONG fDisableDriveRedirection;
|
|
ULONG fDisableComPortRedirection;
|
|
ULONG fDisableLPTPortRedirection;
|
|
ULONG fDisableClipboardRedirection;
|
|
ULONG fDisableAudioRedirection;
|
|
ULONG fDisablePNPRedirection;
|
|
ULONG fDisableDefaultMainClientPrinter;
|
|
ULONG LanAdapter;
|
|
ULONG PortNumber;
|
|
ULONG fInheritShadowSettings;
|
|
ULONG ShadowSettings;
|
|
ULONG TimeoutSettingsConnection;
|
|
ULONG TimeoutSettingsDisconnection;
|
|
ULONG TimeoutSettingsIdle;
|
|
ULONG SecurityLayer;
|
|
ULONG MinEncryptionLevel;
|
|
ULONG UserAuthentication;
|
|
WCHAR Comment[WTS_COMMENT_LENGTH + 1];
|
|
WCHAR LogonUserName[USERNAME_LENGTH + 1];
|
|
WCHAR LogonDomain[DOMAIN_LENGTH + 1];
|
|
WCHAR WorkDirectory[MAX_PATH + 1];
|
|
WCHAR InitialProgram[MAX_PATH + 1];
|
|
} WTSLISTENERCONFIGW;
|
|
typedef WTSLISTENERCONFIGW *PWTSLISTENERCONFIGW;
|
|
#ifdef UNICODE
|
|
typedef WTSLISTENERCONFIGW WTSLISTENERCONFIG;
|
|
typedef PWTSLISTENERCONFIGW PWTSLISTENERCONFIG;
|
|
#else
|
|
typedef WTSLISTENERCONFIGA WTSLISTENERCONFIG;
|
|
typedef PWTSLISTENERCONFIGA PWTSLISTENERCONFIG;
|
|
#endif
|
|
|
|
/* Functions in WTSAPI32.DLL */
|
|
VOID WINAPI WTSCloseServer( HANDLE );
|
|
BOOL WINAPI WTSConnectSessionA( ULONG, ULONG, PSTR, BOOL );
|
|
BOOL WINAPI WTSConnectSessionW( ULONG, ULONG, PWSTR, BOOL );
|
|
BOOL WINAPI WTSCreateListenerA( HANDLE, PVOID, DWORD, LPSTR, PWTSLISTENERCONFIGA, DWORD );
|
|
BOOL WINAPI WTSCreateListenerW( HANDLE, PVOID, DWORD, LPWSTR, PWTSLISTENERCONFIGW, DWORD );
|
|
BOOL WINAPI WTSDisconnectSession( HANDLE, DWORD, BOOL );
|
|
BOOL WINAPI WTSEnumerateListenersA( HANDLE, PVOID, DWORD, PWTSLISTENERNAMEA, DWORD * );
|
|
BOOL WINAPI WTSEnumerateListenersW( HANDLE, PVOID, DWORD, PWTSLISTENERNAMEW, DWORD * );
|
|
BOOL WINAPI WTSEnumerateProcessesA( HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateProcessesExA( HANDLE, DWORD *, DWORD, LPSTR *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateProcessesExW( HANDLE, DWORD *, DWORD, LPWSTR *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateProcessesW( HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateSessionsA( HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateSessionsExA( HANDLE, DWORD *, DWORD, PWTS_SESSION_INFO_1A *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateSessionsExW( HANDLE, DWORD *, DWORD, PWTS_SESSION_INFO_1W *, DWORD * );
|
|
BOOL WINAPI WTSEnumerateSessionsW( HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD * );
|
|
VOID WINAPI WTSFreeMemory( PVOID );
|
|
BOOL WINAPI WTSFreeMemoryExA( WTS_TYPE_CLASS, PVOID, ULONG );
|
|
BOOL WINAPI WTSFreeMemoryExW( WTS_TYPE_CLASS, PVOID, ULONG );
|
|
BOOL WINAPI WTSGetListenerSecurityA( HANDLE, PVOID, DWORD, LPSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD );
|
|
BOOL WINAPI WTSGetListenerSecurityW( HANDLE, PVOID, DWORD, LPWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD );
|
|
BOOL WINAPI WTSLogoffSession( HANDLE, DWORD, BOOL );
|
|
HANDLE WINAPI WTSOpenServerA( LPSTR );
|
|
HANDLE WINAPI WTSOpenServerExA( LPSTR );
|
|
HANDLE WINAPI WTSOpenServerExW( LPWSTR );
|
|
HANDLE WINAPI WTSOpenServerW( LPWSTR );
|
|
BOOL WINAPI WTSQueryListenerConfigA( HANDLE, PVOID, DWORD, LPSTR, PWTSLISTENERCONFIGA );
|
|
BOOL WINAPI WTSQueryListenerConfigW( HANDLE, PVOID, DWORD, LPWSTR, PWTSLISTENERCONFIGW );
|
|
BOOL WINAPI WTSQuerySessionInformationA( HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD * );
|
|
BOOL WINAPI WTSQuerySessionInformationW( HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD * );
|
|
BOOL WINAPI WTSQueryUserConfigA( LPSTR, LPSTR, WTS_CONFIG_CLASS, LPSTR *, DWORD * );
|
|
BOOL WINAPI WTSQueryUserConfigW( LPWSTR, LPWSTR, WTS_CONFIG_CLASS, LPWSTR *, DWORD * );
|
|
BOOL WINAPI WTSQueryUserToken( ULONG, PHANDLE );
|
|
BOOL WINAPI WTSRegisterSessionNotification( HWND, DWORD );
|
|
BOOL WINAPI WTSRegisterSessionNotificationEx( HANDLE, HWND, DWORD );
|
|
BOOL WINAPI WTSSendMessageA( HANDLE, DWORD, LPSTR, DWORD, LPSTR, DWORD, DWORD, DWORD, DWORD *, BOOL );
|
|
BOOL WINAPI WTSSendMessageW( HANDLE, DWORD, LPWSTR, DWORD, LPWSTR, DWORD, DWORD, DWORD, DWORD *, BOOL );
|
|
BOOL WINAPI WTSSetListenerSecurityA( HANDLE, PVOID, DWORD, LPSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR );
|
|
BOOL WINAPI WTSSetListenerSecurityW( HANDLE, PVOID, DWORD, LPWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR );
|
|
BOOL WINAPI WTSSetUserConfigA( LPSTR, LPSTR, WTS_CONFIG_CLASS, LPSTR, DWORD );
|
|
BOOL WINAPI WTSSetUserConfigW( LPWSTR, LPWSTR, WTS_CONFIG_CLASS, LPWSTR, DWORD );
|
|
BOOL WINAPI WTSShutdownSystem( HANDLE, DWORD );
|
|
BOOL WINAPI WTSStartRemoteControlSessionA( LPSTR, ULONG, BYTE, USHORT );
|
|
BOOL WINAPI WTSStartRemoteControlSessionW( LPWSTR, ULONG, BYTE, USHORT );
|
|
BOOL WINAPI WTSStopRemoteControlSession( ULONG );
|
|
BOOL WINAPI WTSTerminateProcess( HANDLE, DWORD, DWORD );
|
|
BOOL WINAPI WTSUnRegisterSessionNotification( HWND );
|
|
BOOL WINAPI WTSUnRegisterSessionNotificationEx( HANDLE, HWND );
|
|
BOOL WINAPI WTSVirtualChannelClose( HANDLE );
|
|
HANDLE WINAPI WTSVirtualChannelOpen( HANDLE, DWORD, LPSTR );
|
|
HANDLE WINAPI WTSVirtualChannelOpenEx( DWORD, LPSTR, DWORD );
|
|
BOOL WINAPI WTSVirtualChannelPurgeInput( HANDLE );
|
|
BOOL WINAPI WTSVirtualChannelPurgeOutput( HANDLE );
|
|
BOOL WINAPI WTSVirtualChannelQuery( HANDLE, WTS_VIRTUAL_CLASS, PVOID *, DWORD * );
|
|
BOOL WINAPI WTSVirtualChannelRead( HANDLE, ULONG, PCHAR, ULONG, PULONG );
|
|
BOOL WINAPI WTSVirtualChannelWrite( HANDLE, PCHAR, ULONG, PULONG );
|
|
BOOL WINAPI WTSWaitSystemEvent( HANDLE, DWORD, DWORD * );
|
|
|
|
/* Map generic function names to the appropriate ANSI or Unicode version. */
|
|
#ifdef UNICODE
|
|
#define WTSConnectServer WTSConnectServerW
|
|
#define WTSCreateListener WTSCreateListenerW
|
|
#define WTSEnumerateListeners WTSEnumerateListenersW
|
|
#define WTSEnumerateProcesses WTSEnumerateProcessesW
|
|
#define WTSEnumerateProcessesEx WTSEnumerateProcessesExW
|
|
#define WTSEnumerateServers WTSEnumerateServersW
|
|
#define WTSEnumerateSessions WTSEnumerateSessionsW
|
|
#define WTSEnumerateSessionsEx WTSEnumerateSessionsExW
|
|
#define WTSFreeMemoryEx WTSFreeMemoryExW
|
|
#define WTSGetListenerSecurity WTSGetListenerSecurityW
|
|
#define WTSOpenServer WTSOpenServerW
|
|
#define WTSOpenServerEx WTSOpenServerExW
|
|
#define WTSQueryListenerConfig WTSQueryListenerConfigW
|
|
#define WTSQuerySessionInformation WTSQuerySessionInformationW
|
|
#define WTSQueryUserConfig WTSQueryUserConfigW
|
|
#define WTSSendMessage WTSSendMessageW
|
|
#define WTSSetListenerSecurity WTSSetListenerSecurityW
|
|
#define WTSSetUserConfig WTSSetUserConfigW
|
|
#define WTSStartRemoteControlSession WTSStartRemoteControlSessionW
|
|
#else
|
|
#define WTSConnectServer WTSConnectServerA
|
|
#define WTSCreateListener WTSCreateListenerA
|
|
#define WTSEnumerateListeners WTSEnumerateListenersA
|
|
#define WTSEnumerateProcesses WTSEnumerateProcessesA
|
|
#define WTSEnumerateProcessesEx WTSEnumerateProcessesExA
|
|
#define WTSEnumerateServers WTSEnumerateServersA
|
|
#define WTSEnumerateSessions WTSEnumerateSessionsA
|
|
#define WTSEnumerateSessionsEx WTSEnumerateSessionsExA
|
|
#define WTSFreeMemoryEx WTSFreeMemoryExA
|
|
#define WTSGetListenerSecurity WTSGetListenerSecurityA
|
|
#define WTSOpenServer WTSOpenServerA
|
|
#define WTSOpenServerEx WTSOpenServerExA
|
|
#define WTSQueryListenerConfig WTSQueryListenerConfigA
|
|
#define WTSQuerySessionInformation WTSQuerySessionInformationA
|
|
#define WTSQueryUserConfig WTSQueryUserConfigA
|
|
#define WTSSendMessage WTSSendMessageA
|
|
#define WTSSetListenerSecurity WTSSetListenerSecurityA
|
|
#define WTSSetUserConfig WTSSetUserConfigA
|
|
#define WTSStartRemoteControlSession WTSStartRemoteControlSessionA
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _INC_WTSAPI */
|