Artifact fa6f54ec493591ee9faf1e9ce94639e4d73dbbe4:
- File
src/win32/wtsapi32.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 77 74 73 61 70 wtsap 0070: 69 33 32 2e 64 20 20 20 20 20 20 20 20 20 20 20 i32.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 61 Tra 0190: 6e 73 6c 61 74 65 64 20 66 72 6f 6d 20 4d 69 6e nslated from Min 01a0: 47 57 2d 77 36 34 20 41 50 49 20 20 20 20 20 20 GW-w64 API 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into 0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\******* 0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32. 02b0: 77 74 73 61 70 69 33 32 3b 0d 0a 70 72 61 67 6d wtsapi32;..pragm 02c0: 61 28 6c 69 62 2c 20 22 77 74 73 61 70 69 33 32 a(lib, "wtsapi32 02d0: 22 29 3b 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 ");..private imp 02e0: 6f 72 74 20 77 69 6e 33 32 2e 77 33 32 61 70 69 ort win32.w32api 02f0: 3b 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e ;..import win32. 0300: 77 69 6e 64 65 66 3b 0d 0a 0d 0a 65 6e 75 6d 20 windef;....enum 0310: 7b 0d 0a 09 57 54 53 5f 43 55 52 52 45 4e 54 5f {...WTS_CURRENT_ 0320: 53 45 52 56 45 52 20 20 20 20 20 20 20 20 3d 20 SERVER = 0330: 6e 75 6c 6c 2c 0d 0a 09 57 54 53 5f 43 55 52 52 null,...WTS_CURR 0340: 45 4e 54 5f 53 45 52 56 45 52 5f 48 41 4e 44 4c ENT_SERVER_HANDL 0350: 45 20 3d 20 6e 75 6c 6c 2c 0d 0a 09 57 54 53 5f E = null,...WTS_ 0360: 43 55 52 52 45 4e 54 5f 53 45 52 56 45 52 5f 4e CURRENT_SERVER_N 0370: 41 4d 45 20 20 20 3d 20 6e 75 6c 6c 0d 0a 7d 0d AME = null..}. 0380: 0a 0d 0a 65 6e 75 6d 20 44 57 4f 52 44 20 57 54 ...enum DWORD WT 0390: 53 5f 43 55 52 52 45 4e 54 5f 53 45 53 53 49 4f S_CURRENT_SESSIO 03a0: 4e 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 20 N = cast(DWORD) 03b0: 2d 31 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 -1;....enum {... 03c0: 49 44 54 49 4d 45 4f 55 54 20 3d 20 33 32 30 30 IDTIMEOUT = 3200 03d0: 30 2c 0d 0a 09 49 44 41 53 59 4e 43 20 20 20 3d 0,...IDASYNC = 03e0: 20 33 32 30 30 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 32001..}....enu 03f0: 6d 20 7b 0d 0a 09 57 54 53 5f 57 53 44 5f 4c 4f m {...WTS_WSD_LO 0400: 47 4f 46 46 20 20 20 20 20 3d 20 30 78 30 31 2c GOFF = 0x01, 0410: 0d 0a 09 57 54 53 5f 57 53 44 5f 53 48 55 54 44 ...WTS_WSD_SHUTD 0420: 4f 57 4e 20 20 20 3d 20 30 78 30 32 2c 0d 0a 09 OWN = 0x02,... 0430: 57 54 53 5f 57 53 44 5f 52 45 42 4f 4f 54 20 20 WTS_WSD_REBOOT 0440: 20 20 20 3d 20 30 78 30 34 2c 0d 0a 09 57 54 53 = 0x04,...WTS 0450: 5f 57 53 44 5f 50 4f 57 45 52 4f 46 46 20 20 20 _WSD_POWEROFF 0460: 3d 20 30 78 30 38 2c 0d 0a 09 57 54 53 5f 57 53 = 0x08,...WTS_WS 0470: 44 5f 46 41 53 54 52 45 42 4f 4f 54 20 3d 20 30 D_FASTREBOOT = 0 0480: 78 31 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 57 x10..}....enum W 0490: 54 53 5f 43 4f 4e 4e 45 43 54 53 54 41 54 45 5f TS_CONNECTSTATE_ 04a0: 43 4c 41 53 53 20 7b 0d 0a 09 57 54 53 41 63 74 CLASS {...WTSAct 04b0: 69 76 65 2c 0d 0a 09 57 54 53 43 6f 6e 6e 65 63 ive,...WTSConnec 04c0: 74 65 64 2c 0d 0a 09 57 54 53 43 6f 6e 6e 65 63 ted,...WTSConnec 04d0: 74 51 75 65 72 79 2c 0d 0a 09 57 54 53 53 68 61 tQuery,...WTSSha 04e0: 64 6f 77 2c 0d 0a 09 57 54 53 44 69 73 63 6f 6e dow,...WTSDiscon 04f0: 6e 65 63 74 65 64 2c 0d 0a 09 57 54 53 49 64 6c nected,...WTSIdl 0500: 65 2c 0d 0a 09 57 54 53 4c 69 73 74 65 6e 2c 0d e,...WTSListen,. 0510: 0a 09 57 54 53 52 65 73 65 74 2c 0d 0a 09 57 54 ..WTSReset,...WT 0520: 53 44 6f 77 6e 2c 0d 0a 09 57 54 53 49 6e 69 74 SDown,...WTSInit 0530: 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 57 54 ..}....struct WT 0540: 53 5f 53 45 52 56 45 52 5f 49 4e 46 4f 57 20 7b S_SERVER_INFOW { 0550: 0d 0a 09 4c 50 57 53 54 52 20 70 53 65 72 76 65 ...LPWSTR pServe 0560: 72 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 rName;..}..alias 0570: 20 57 54 53 5f 53 45 52 56 45 52 5f 49 4e 46 4f WTS_SERVER_INFO 0580: 57 2a 20 50 57 54 53 5f 53 45 52 56 45 52 5f 49 W* PWTS_SERVER_I 0590: 4e 46 4f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 NFOW;....struct 05a0: 57 54 53 5f 53 45 52 56 45 52 5f 49 4e 46 4f 41 WTS_SERVER_INFOA 05b0: 20 7b 0d 0a 09 4c 50 53 54 52 20 70 53 65 72 76 {...LPSTR pServ 05c0: 65 72 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 erName;..}..alia 05d0: 73 20 57 54 53 5f 53 45 52 56 45 52 5f 49 4e 46 s WTS_SERVER_INF 05e0: 4f 41 2a 20 50 57 54 53 5f 53 45 52 56 45 52 5f OA* PWTS_SERVER_ 05f0: 49 4e 46 4f 41 3b 0d 0a 0d 0a 76 65 72 73 69 6f INFOA;....versio 0600: 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 n(Unicode) {...a 0610: 6c 69 61 73 20 57 54 53 5f 53 45 52 56 45 52 5f lias WTS_SERVER_ 0620: 49 4e 46 4f 57 20 20 57 54 53 5f 53 45 52 56 45 INFOW WTS_SERVE 0630: 52 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 R_INFO;...alias 0640: 50 57 54 53 5f 53 45 52 56 45 52 5f 49 4e 46 4f PWTS_SERVER_INFO 0650: 57 20 50 57 54 53 5f 53 45 52 56 45 52 5f 49 4e W PWTS_SERVER_IN 0660: 46 4f 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 FO;..} else {... 0670: 61 6c 69 61 73 20 57 54 53 5f 53 45 52 56 45 52 alias WTS_SERVER 0680: 5f 49 4e 46 4f 41 20 20 57 54 53 5f 53 45 52 56 _INFOA WTS_SERV 0690: 45 52 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 ER_INFO;...alias 06a0: 20 50 57 54 53 5f 53 45 52 56 45 52 5f 49 4e 46 PWTS_SERVER_INF 06b0: 4f 41 20 50 57 54 53 5f 53 45 52 56 45 52 5f 49 OA PWTS_SERVER_I 06c0: 4e 46 4f 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 NFO;..}....struc 06d0: 74 20 57 54 53 5f 53 45 53 53 49 4f 4e 5f 49 4e t WTS_SESSION_IN 06e0: 46 4f 57 20 7b 0d 0a 09 44 57 4f 52 44 20 53 65 FOW {...DWORD Se 06f0: 73 73 69 6f 6e 49 64 3b 0d 0a 09 4c 50 57 53 54 ssionId;...LPWST 0700: 52 20 70 57 69 6e 53 74 61 74 69 6f 6e 4e 61 6d R pWinStationNam 0710: 65 3b 0d 0a 09 57 54 53 5f 43 4f 4e 4e 45 43 54 e;...WTS_CONNECT 0720: 53 54 41 54 45 5f 43 4c 41 53 53 20 53 74 61 74 STATE_CLASS Stat 0730: 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 57 54 53 e;..}..alias WTS 0740: 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 57 2a 20 _SESSION_INFOW* 0750: 50 57 54 53 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 PWTS_SESSION_INF 0760: 4f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 57 54 OW;....struct WT 0770: 53 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 41 20 S_SESSION_INFOA 0780: 7b 0d 0a 09 44 57 4f 52 44 20 53 65 73 73 69 6f {...DWORD Sessio 0790: 6e 49 64 3b 0d 0a 09 4c 50 53 54 52 20 70 57 69 nId;...LPSTR pWi 07a0: 6e 53 74 61 74 69 6f 6e 4e 61 6d 65 3b 0d 0a 09 nStationName;... 07b0: 57 54 53 5f 43 4f 4e 4e 45 43 54 53 54 41 54 45 WTS_CONNECTSTATE 07c0: 5f 43 4c 41 53 53 20 53 74 61 74 65 3b 0d 0a 7d _CLASS State;..} 07d0: 0d 0a 61 6c 69 61 73 20 57 54 53 5f 53 45 53 53 ..alias WTS_SESS 07e0: 49 4f 4e 5f 49 4e 46 4f 41 2a 20 50 57 54 53 5f ION_INFOA* PWTS_ 07f0: 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 41 3b 0d 0a SESSION_INFOA;.. 0800: 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 ..version(Unicod 0810: 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 57 54 53 e) {...alias WTS 0820: 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 57 20 20 _SESSION_INFOW 0830: 57 54 53 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f WTS_SESSION_INFO 0840: 3b 0d 0a 09 61 6c 69 61 73 20 50 57 54 53 5f 53 ;...alias PWTS_S 0850: 45 53 53 49 4f 4e 5f 49 4e 46 4f 57 20 50 57 54 ESSION_INFOW PWT 0860: 53 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 3b 0d S_SESSION_INFO;. 0870: 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 .} else {...alia 0880: 73 20 57 54 53 5f 53 45 53 53 49 4f 4e 5f 49 4e s WTS_SESSION_IN 0890: 46 4f 41 20 20 57 54 53 5f 53 45 53 53 49 4f 4e FOA WTS_SESSION 08a0: 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 50 _INFO;...alias P 08b0: 57 54 53 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f WTS_SESSION_INFO 08c0: 41 20 50 57 54 53 5f 53 45 53 53 49 4f 4e 5f 49 A PWTS_SESSION_I 08d0: 4e 46 4f 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 NFO;..}....struc 08e0: 74 20 57 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e t WTS_PROCESS_IN 08f0: 46 4f 57 20 7b 0d 0a 09 44 57 4f 52 44 20 53 65 FOW {...DWORD Se 0900: 73 73 69 6f 6e 49 64 3b 0d 0a 09 44 57 4f 52 44 ssionId;...DWORD 0910: 20 50 72 6f 63 65 73 73 49 64 3b 0d 0a 09 4c 50 ProcessId;...LP 0920: 57 53 54 52 20 70 50 72 6f 63 65 73 73 4e 61 6d WSTR pProcessNam 0930: 65 3b 0d 0a 09 50 53 49 44 20 70 55 73 65 72 53 e;...PSID pUserS 0940: 69 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 57 54 id;..}..alias WT 0950: 53 5f 50 52 4f 43 45 53 53 5f 49 4e 46 4f 57 2a S_PROCESS_INFOW* 0960: 20 50 57 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e PWTS_PROCESS_IN 0970: 46 4f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 57 FOW;....struct W 0980: 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e 46 4f 41 TS_PROCESS_INFOA 0990: 20 7b 0d 0a 09 44 57 4f 52 44 20 53 65 73 73 69 {...DWORD Sessi 09a0: 6f 6e 49 64 3b 0d 0a 09 44 57 4f 52 44 20 50 72 onId;...DWORD Pr 09b0: 6f 63 65 73 73 49 64 3b 0d 0a 09 4c 50 53 54 52 ocessId;...LPSTR 09c0: 20 70 50 72 6f 63 65 73 73 4e 61 6d 65 3b 0d 0a pProcessName;.. 09d0: 09 50 53 49 44 20 70 55 73 65 72 53 69 64 3b 0d .PSID pUserSid;. 09e0: 0a 7d 0d 0a 61 6c 69 61 73 20 57 54 53 5f 50 52 .}..alias WTS_PR 09f0: 4f 43 45 53 53 5f 49 4e 46 4f 41 2a 20 50 57 54 OCESS_INFOA* PWT 0a00: 53 5f 50 52 4f 43 45 53 53 5f 49 4e 46 4f 41 3b S_PROCESS_INFOA; 0a10: 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 ....version(Unic 0a20: 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 57 ode) {...alias W 0a30: 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e 46 4f 57 TS_PROCESS_INFOW 0a40: 20 20 57 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e WTS_PROCESS_IN 0a50: 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 50 57 54 53 FO;...alias PWTS 0a60: 5f 50 52 4f 43 45 53 53 5f 49 4e 46 4f 57 20 50 _PROCESS_INFOW P 0a70: 57 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e 46 4f WTS_PROCESS_INFO 0a80: 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c ;..} else {...al 0a90: 69 61 73 20 57 54 53 5f 50 52 4f 43 45 53 53 5f ias WTS_PROCESS_ 0aa0: 49 4e 46 4f 41 20 20 57 54 53 5f 50 52 4f 43 45 INFOA WTS_PROCE 0ab0: 53 53 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 SS_INFO;...alias 0ac0: 20 50 57 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e PWTS_PROCESS_IN 0ad0: 46 4f 41 20 50 57 54 53 5f 50 52 4f 43 45 53 53 FOA PWTS_PROCESS 0ae0: 5f 49 4e 46 4f 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 _INFO;..}....enu 0af0: 6d 20 7b 0d 0a 09 57 54 53 5f 50 52 4f 54 4f 43 m {...WTS_PROTOC 0b00: 4f 4c 5f 54 59 50 45 5f 43 4f 4e 53 4f 4c 45 2c OL_TYPE_CONSOLE, 0b10: 0d 0a 09 57 54 53 5f 50 52 4f 54 4f 43 4f 4c 5f ...WTS_PROTOCOL_ 0b20: 54 59 50 45 5f 49 43 41 2c 0d 0a 09 57 54 53 5f TYPE_ICA,...WTS_ 0b30: 50 52 4f 54 4f 43 4f 4c 5f 54 59 50 45 5f 52 44 PROTOCOL_TYPE_RD 0b40: 50 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 57 54 53 P..}....enum WTS 0b50: 5f 49 4e 46 4f 5f 43 4c 41 53 53 20 7b 0d 0a 09 _INFO_CLASS {... 0b60: 57 54 53 49 6e 69 74 69 61 6c 50 72 6f 67 72 61 WTSInitialProgra 0b70: 6d 2c 0d 0a 09 57 54 53 41 70 70 6c 69 63 61 74 m,...WTSApplicat 0b80: 69 6f 6e 4e 61 6d 65 2c 0d 0a 09 57 54 53 57 6f ionName,...WTSWo 0b90: 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 2c 0d rkingDirectory,. 0ba0: 0a 09 57 54 53 4f 45 4d 49 64 2c 0d 0a 09 57 54 ..WTSOEMId,...WT 0bb0: 53 53 65 73 73 69 6f 6e 49 64 2c 0d 0a 09 57 54 SSessionId,...WT 0bc0: 53 55 73 65 72 4e 61 6d 65 2c 0d 0a 09 57 54 53 SUserName,...WTS 0bd0: 57 69 6e 53 74 61 74 69 6f 6e 4e 61 6d 65 2c 0d WinStationName,. 0be0: 0a 09 57 54 53 44 6f 6d 61 69 6e 4e 61 6d 65 2c ..WTSDomainName, 0bf0: 0d 0a 09 57 54 53 43 6f 6e 6e 65 63 74 53 74 61 ...WTSConnectSta 0c00: 74 65 2c 0d 0a 09 57 54 53 43 6c 69 65 6e 74 42 te,...WTSClientB 0c10: 75 69 6c 64 4e 75 6d 62 65 72 2c 0d 0a 09 57 54 uildNumber,...WT 0c20: 53 43 6c 69 65 6e 74 4e 61 6d 65 2c 0d 0a 09 57 SClientName,...W 0c30: 54 53 43 6c 69 65 6e 74 44 69 72 65 63 74 6f 72 TSClientDirector 0c40: 79 2c 0d 0a 09 57 54 53 43 6c 69 65 6e 74 50 72 y,...WTSClientPr 0c50: 6f 64 75 63 74 49 64 2c 0d 0a 09 57 54 53 43 6c oductId,...WTSCl 0c60: 69 65 6e 74 48 61 72 64 77 61 72 65 49 64 2c 0d ientHardwareId,. 0c70: 0a 09 57 54 53 43 6c 69 65 6e 74 41 64 64 72 65 ..WTSClientAddre 0c80: 73 73 2c 0d 0a 09 57 54 53 43 6c 69 65 6e 74 44 ss,...WTSClientD 0c90: 69 73 70 6c 61 79 2c 0d 0a 09 57 54 53 43 6c 69 isplay,...WTSCli 0ca0: 65 6e 74 50 72 6f 74 6f 63 6f 6c 54 79 70 65 2c entProtocolType, 0cb0: 0d 0a 09 57 54 53 49 64 6c 65 54 69 6d 65 2c 0d ...WTSIdleTime,. 0cc0: 0a 09 57 54 53 4c 6f 67 6f 6e 54 69 6d 65 2c 0d ..WTSLogonTime,. 0cd0: 0a 09 57 54 53 49 6e 63 6f 6d 69 6e 67 42 79 74 ..WTSIncomingByt 0ce0: 65 73 2c 0d 0a 09 57 54 53 4f 75 74 67 6f 69 6e es,...WTSOutgoin 0cf0: 67 42 79 74 65 73 2c 0d 0a 09 57 54 53 49 6e 63 gBytes,...WTSInc 0d00: 6f 6d 69 6e 67 46 72 61 6d 65 73 2c 0d 0a 09 57 omingFrames,...W 0d10: 54 53 4f 75 74 67 6f 69 6e 67 46 72 61 6d 65 73 TSOutgoingFrames 0d20: 2c 0d 0a 09 57 54 53 43 6c 69 65 6e 74 49 6e 66 ,...WTSClientInf 0d30: 6f 2c 0d 0a 09 57 54 53 53 65 73 73 69 6f 6e 49 o,...WTSSessionI 0d40: 6e 66 6f 2c 20 2f 2f 20 3d 20 32 34 0d 0a 7d 0d nfo, // = 24..}. 0d50: 0a 0d 0a 73 74 72 75 63 74 20 57 54 53 5f 43 4c ...struct WTS_CL 0d60: 49 45 4e 54 5f 41 44 44 52 45 53 53 20 7b 0d 0a IENT_ADDRESS {.. 0d70: 09 44 57 4f 52 44 20 20 20 20 41 64 64 72 65 73 .DWORD Addres 0d80: 73 46 61 6d 69 6c 79 3b 0d 0a 09 42 59 54 45 5b sFamily;...BYTE[ 0d90: 32 30 5d 20 41 64 64 72 65 73 73 3b 0d 0a 7d 0d 20] Address;..}. 0da0: 0a 61 6c 69 61 73 20 57 54 53 5f 43 4c 49 45 4e .alias WTS_CLIEN 0db0: 54 5f 41 44 44 52 45 53 53 2a 20 50 57 54 53 5f T_ADDRESS* PWTS_ 0dc0: 43 4c 49 45 4e 54 5f 41 44 44 52 45 53 53 3b 0d CLIENT_ADDRESS;. 0dd0: 0a 0d 0a 73 74 72 75 63 74 20 57 54 53 5f 43 4c ...struct WTS_CL 0de0: 49 45 4e 54 5f 44 49 53 50 4c 41 59 20 7b 0d 0a IENT_DISPLAY {.. 0df0: 09 44 57 4f 52 44 20 48 6f 72 69 7a 6f 6e 74 61 .DWORD Horizonta 0e00: 6c 52 65 73 6f 6c 75 74 69 6f 6e 3b 0d 0a 09 44 lResolution;...D 0e10: 57 4f 52 44 20 56 65 72 74 69 63 61 6c 52 65 73 WORD VerticalRes 0e20: 6f 6c 75 74 69 6f 6e 3b 0d 0a 09 44 57 4f 52 44 olution;...DWORD 0e30: 20 43 6f 6c 6f 72 44 65 70 74 68 3b 0d 0a 7d 0d ColorDepth;..}. 0e40: 0a 61 6c 69 61 73 20 57 54 53 5f 43 4c 49 45 4e .alias WTS_CLIEN 0e50: 54 5f 44 49 53 50 4c 41 59 2a 20 50 57 54 53 5f T_DISPLAY* PWTS_ 0e60: 43 4c 49 45 4e 54 5f 44 49 53 50 4c 41 59 3b 0d CLIENT_DISPLAY;. 0e70: 0a 0d 0a 65 6e 75 6d 20 57 54 53 5f 43 4f 4e 46 ...enum WTS_CONF 0e80: 49 47 5f 43 4c 41 53 53 20 7b 0d 0a 09 57 54 53 IG_CLASS {...WTS 0e90: 55 73 65 72 43 6f 6e 66 69 67 49 6e 69 74 69 61 UserConfigInitia 0ea0: 6c 50 72 6f 67 72 61 6d 2c 0d 0a 09 57 54 53 55 lProgram,...WTSU 0eb0: 73 65 72 43 6f 6e 66 69 67 57 6f 72 6b 69 6e 67 serConfigWorking 0ec0: 44 69 72 65 63 74 6f 72 79 2c 0d 0a 09 57 54 53 Directory,...WTS 0ed0: 55 73 65 72 43 6f 6e 66 69 67 66 49 6e 68 65 72 UserConfigfInher 0ee0: 69 74 49 6e 69 74 69 61 6c 50 72 6f 67 72 61 6d itInitialProgram 0ef0: 2c 0d 0a 09 57 54 53 55 73 65 72 43 6f 6e 66 69 ,...WTSUserConfi 0f00: 67 66 41 6c 6c 6f 77 4c 6f 67 6f 6e 54 65 72 6d gfAllowLogonTerm 0f10: 69 6e 61 6c 53 65 72 76 65 72 2c 0d 0a 09 57 54 inalServer,...WT 0f20: 53 55 73 65 72 43 6f 6e 66 69 67 54 69 6d 65 6f SUserConfigTimeo 0f30: 75 74 53 65 74 74 69 6e 67 73 43 6f 6e 6e 65 63 utSettingsConnec 0f40: 74 69 6f 6e 73 2c 0d 0a 09 57 54 53 55 73 65 72 tions,...WTSUser 0f50: 43 6f 6e 66 69 67 54 69 6d 65 6f 75 74 53 65 74 ConfigTimeoutSet 0f60: 74 69 6e 67 73 44 69 73 63 6f 6e 6e 65 63 74 69 tingsDisconnecti 0f70: 6f 6e 73 2c 0d 0a 09 57 54 53 55 73 65 72 43 6f ons,...WTSUserCo 0f80: 6e 66 69 67 54 69 6d 65 6f 75 74 53 65 74 74 69 nfigTimeoutSetti 0f90: 6e 67 73 49 64 6c 65 2c 0d 0a 09 57 54 53 55 73 ngsIdle,...WTSUs 0fa0: 65 72 43 6f 6e 66 69 67 66 44 65 76 69 63 65 43 erConfigfDeviceC 0fb0: 6c 69 65 6e 74 44 72 69 76 65 73 2c 0d 0a 09 57 lientDrives,...W 0fc0: 54 53 55 73 65 72 43 6f 6e 66 69 67 66 44 65 76 TSUserConfigfDev 0fd0: 69 63 65 43 6c 69 65 6e 74 50 72 69 6e 74 65 72 iceClientPrinter 0fe0: 73 2c 0d 0a 09 57 54 53 55 73 65 72 43 6f 6e 66 s,...WTSUserConf 0ff0: 69 67 66 44 65 76 69 63 65 43 6c 69 65 6e 74 44 igfDeviceClientD 1000: 65 66 61 75 6c 74 50 72 69 6e 74 65 72 2c 0d 0a efaultPrinter,.. 1010: 09 57 54 53 55 73 65 72 43 6f 6e 66 69 67 42 72 .WTSUserConfigBr 1020: 6f 6b 65 6e 54 69 6d 65 6f 75 74 53 65 74 74 69 okenTimeoutSetti 1030: 6e 67 73 2c 0d 0a 09 57 54 53 55 73 65 72 43 6f ngs,...WTSUserCo 1040: 6e 66 69 67 52 65 63 6f 6e 6e 65 63 74 53 65 74 nfigReconnectSet 1050: 74 69 6e 67 73 2c 0d 0a 09 57 54 53 55 73 65 72 tings,...WTSUser 1060: 43 6f 6e 66 69 67 4d 6f 64 65 6d 43 61 6c 6c 62 ConfigModemCallb 1070: 61 63 6b 53 65 74 74 69 6e 67 73 2c 0d 0a 09 57 ackSettings,...W 1080: 54 53 55 73 65 72 43 6f 6e 66 69 67 4d 6f 64 65 TSUserConfigMode 1090: 6d 43 61 6c 6c 62 61 63 6b 50 68 6f 6e 65 4e 75 mCallbackPhoneNu 10a0: 6d 62 65 72 2c 0d 0a 09 57 54 53 55 73 65 72 43 mber,...WTSUserC 10b0: 6f 6e 66 69 67 53 68 61 64 6f 77 69 6e 67 53 65 onfigShadowingSe 10c0: 74 74 69 6e 67 73 2c 0d 0a 09 57 54 53 55 73 65 ttings,...WTSUse 10d0: 72 43 6f 6e 66 69 67 54 65 72 6d 69 6e 61 6c 53 rConfigTerminalS 10e0: 65 72 76 65 72 50 72 6f 66 69 6c 65 50 61 74 68 erverProfilePath 10f0: 2c 0d 0a 09 57 54 53 55 73 65 72 43 6f 6e 66 69 ,...WTSUserConfi 1100: 67 54 65 72 6d 69 6e 61 6c 53 65 72 76 65 72 48 gTerminalServerH 1110: 6f 6d 65 44 69 72 2c 0d 0a 09 57 54 53 55 73 65 omeDir,...WTSUse 1120: 72 43 6f 6e 66 69 67 54 65 72 6d 69 6e 61 6c 53 rConfigTerminalS 1130: 65 72 76 65 72 48 6f 6d 65 44 69 72 44 72 69 76 erverHomeDirDriv 1140: 65 2c 0d 0a 09 57 54 53 55 73 65 72 43 6f 6e 66 e,...WTSUserConf 1150: 69 67 66 54 65 72 6d 69 6e 61 6c 53 65 72 76 65 igfTerminalServe 1160: 72 52 65 6d 6f 74 65 48 6f 6d 65 44 69 72 0d 0a rRemoteHomeDir.. 1170: 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 57 54 }....enum {...WT 1180: 53 5f 45 56 45 4e 54 5f 4e 4f 4e 45 20 20 20 20 S_EVENT_NONE 1190: 20 20 20 20 3d 20 30 78 30 2c 0d 0a 09 57 54 53 = 0x0,...WTS 11a0: 5f 45 56 45 4e 54 5f 43 52 45 41 54 45 20 20 20 _EVENT_CREATE 11b0: 20 20 20 3d 20 30 78 31 2c 0d 0a 09 57 54 53 5f = 0x1,...WTS_ 11c0: 45 56 45 4e 54 5f 44 45 4c 45 54 45 20 20 20 20 EVENT_DELETE 11d0: 20 20 3d 20 30 78 32 2c 0d 0a 09 57 54 53 5f 45 = 0x2,...WTS_E 11e0: 56 45 4e 54 5f 52 45 4e 41 4d 45 20 20 20 20 20 VENT_RENAME 11f0: 20 3d 20 30 78 34 2c 0d 0a 09 57 54 53 5f 45 56 = 0x4,...WTS_EV 1200: 45 4e 54 5f 43 4f 4e 4e 45 43 54 20 20 20 20 20 ENT_CONNECT 1210: 3d 20 30 78 38 2c 0d 0a 09 57 54 53 5f 45 56 45 = 0x8,...WTS_EVE 1220: 4e 54 5f 44 49 53 43 4f 4e 4e 45 43 54 20 20 3d NT_DISCONNECT = 1230: 20 30 78 31 30 2c 0d 0a 09 57 54 53 5f 45 56 45 0x10,...WTS_EVE 1240: 4e 54 5f 4c 4f 47 4f 4e 20 20 20 20 20 20 20 3d NT_LOGON = 1250: 20 30 78 32 30 2c 0d 0a 09 57 54 53 5f 45 56 45 0x20,...WTS_EVE 1260: 4e 54 5f 4c 4f 47 4f 46 46 20 20 20 20 20 20 3d NT_LOGOFF = 1270: 20 30 78 34 30 2c 0d 0a 09 57 54 53 5f 45 56 45 0x40,...WTS_EVE 1280: 4e 54 5f 53 54 41 54 45 43 48 41 4e 47 45 20 3d NT_STATECHANGE = 1290: 20 30 78 38 30 2c 0d 0a 09 57 54 53 5f 45 56 45 0x80,...WTS_EVE 12a0: 4e 54 5f 4c 49 43 45 4e 53 45 20 20 20 20 20 3d NT_LICENSE = 12b0: 20 30 78 31 30 30 2c 0d 0a 09 57 54 53 5f 45 56 0x100,...WTS_EV 12c0: 45 4e 54 5f 41 4c 4c 20 20 20 20 20 20 20 20 20 ENT_ALL 12d0: 3d 20 30 78 37 66 66 66 66 66 66 66 2c 0d 0a 09 = 0x7fffffff,... 12e0: 57 54 53 5f 45 56 45 4e 54 5f 46 4c 55 53 48 20 WTS_EVENT_FLUSH 12f0: 20 20 20 20 20 20 3d 20 30 78 38 30 30 30 30 30 = 0x800000 1300: 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 57 54 00..}....enum WT 1310: 53 5f 56 49 52 54 55 41 4c 5f 43 4c 41 53 53 20 S_VIRTUAL_CLASS 1320: 7b 0d 0a 09 57 54 53 56 69 72 74 75 61 6c 43 6c {...WTSVirtualCl 1330: 69 65 6e 74 44 61 74 61 2c 0d 0a 09 57 54 53 56 ientData,...WTSV 1340: 69 72 74 75 61 6c 46 69 6c 65 48 61 6e 64 6c 65 irtualFileHandle 1350: 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 ..}....version(U 1360: 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 nicode) {...alia 1370: 73 20 57 54 53 45 6e 75 6d 65 72 61 74 65 53 65 s WTSEnumerateSe 1380: 72 76 65 72 73 57 20 57 54 53 45 6e 75 6d 65 72 rversW WTSEnumer 1390: 61 74 65 53 65 72 76 65 72 73 3b 0d 0a 09 61 6c ateServers;...al 13a0: 69 61 73 20 57 54 53 4f 70 65 6e 53 65 72 76 65 ias WTSOpenServe 13b0: 72 57 20 57 54 53 4f 70 65 6e 53 65 72 76 65 72 rW WTSOpenServer 13c0: 3b 0d 0a 09 61 6c 69 61 73 20 57 54 53 45 6e 75 ;...alias WTSEnu 13d0: 6d 65 72 61 74 65 53 65 73 73 69 6f 6e 73 57 20 merateSessionsW 13e0: 57 54 53 45 6e 75 6d 65 72 61 74 65 53 65 73 73 WTSEnumerateSess 13f0: 69 6f 6e 73 3b 0d 0a 09 61 6c 69 61 73 20 57 54 ions;...alias WT 1400: 53 45 6e 75 6d 65 72 61 74 65 50 72 6f 63 65 73 SEnumerateProces 1410: 73 65 73 57 20 57 54 53 45 6e 75 6d 65 72 61 74 sesW WTSEnumerat 1420: 65 50 72 6f 63 65 73 73 65 73 3b 0d 0a 09 61 6c eProcesses;...al 1430: 69 61 73 20 57 54 53 51 75 65 72 79 53 65 73 73 ias WTSQuerySess 1440: 69 6f 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 57 20 ionInformationW 1450: 57 54 53 51 75 65 72 79 53 65 73 73 69 6f 6e 49 WTSQuerySessionI 1460: 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0d 0a 09 61 6c nformation;...al 1470: 69 61 73 20 57 54 53 51 75 65 72 79 55 73 65 72 ias WTSQueryUser 1480: 43 6f 6e 66 69 67 57 20 57 54 53 51 75 65 72 79 ConfigW WTSQuery 1490: 55 73 65 72 43 6f 6e 66 69 67 3b 0d 0a 09 61 6c UserConfig;...al 14a0: 69 61 73 20 57 54 53 53 65 74 55 73 65 72 43 6f ias WTSSetUserCo 14b0: 6e 66 69 67 57 20 57 54 53 53 65 74 55 73 65 72 nfigW WTSSetUser 14c0: 43 6f 6e 66 69 67 3b 0d 0a 09 61 6c 69 61 73 20 Config;...alias 14d0: 57 54 53 53 65 6e 64 4d 65 73 73 61 67 65 57 20 WTSSendMessageW 14e0: 57 54 53 53 65 6e 64 4d 65 73 73 61 67 65 3b 0d WTSSendMessage;. 14f0: 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 .} else {...alia 1500: 73 20 57 54 53 45 6e 75 6d 65 72 61 74 65 53 65 s WTSEnumerateSe 1510: 72 76 65 72 73 41 20 57 54 53 45 6e 75 6d 65 72 rversA WTSEnumer 1520: 61 74 65 53 65 72 76 65 72 73 3b 0d 0a 09 61 6c ateServers;...al 1530: 69 61 73 20 57 54 53 4f 70 65 6e 53 65 72 76 65 ias WTSOpenServe 1540: 72 41 20 57 54 53 4f 70 65 6e 53 65 72 76 65 72 rA WTSOpenServer 1550: 3b 0d 0a 09 61 6c 69 61 73 20 57 54 53 45 6e 75 ;...alias WTSEnu 1560: 6d 65 72 61 74 65 53 65 73 73 69 6f 6e 73 41 20 merateSessionsA 1570: 57 54 53 45 6e 75 6d 65 72 61 74 65 53 65 73 73 WTSEnumerateSess 1580: 69 6f 6e 73 3b 0d 0a 09 61 6c 69 61 73 20 57 54 ions;...alias WT 1590: 53 45 6e 75 6d 65 72 61 74 65 50 72 6f 63 65 73 SEnumerateProces 15a0: 73 65 73 41 20 57 54 53 45 6e 75 6d 65 72 61 74 sesA WTSEnumerat 15b0: 65 50 72 6f 63 65 73 73 65 73 3b 0d 0a 09 61 6c eProcesses;...al 15c0: 69 61 73 20 57 54 53 51 75 65 72 79 53 65 73 73 ias WTSQuerySess 15d0: 69 6f 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 41 20 ionInformationA 15e0: 57 54 53 51 75 65 72 79 53 65 73 73 69 6f 6e 49 WTSQuerySessionI 15f0: 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0d 0a 09 61 6c nformation;...al 1600: 69 61 73 20 57 54 53 51 75 65 72 79 55 73 65 72 ias WTSQueryUser 1610: 43 6f 6e 66 69 67 41 20 57 54 53 51 75 65 72 79 ConfigA WTSQuery 1620: 55 73 65 72 43 6f 6e 66 69 67 3b 0d 0a 09 61 6c UserConfig;...al 1630: 69 61 73 20 57 54 53 53 65 74 55 73 65 72 43 6f ias WTSSetUserCo 1640: 6e 66 69 67 41 20 57 54 53 53 65 74 55 73 65 72 nfigA WTSSetUser 1650: 43 6f 6e 66 69 67 3b 0d 0a 09 61 6c 69 61 73 20 Config;...alias 1660: 57 54 53 53 65 6e 64 4d 65 73 73 61 67 65 41 20 WTSSendMessageA 1670: 57 54 53 53 65 6e 64 4d 65 73 73 61 67 65 3b 0d WTSSendMessage;. 1680: 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e .}....extern(Win 1690: 64 6f 77 73 29 20 7b 0d 0a 09 57 49 4e 42 4f 4f dows) {...WINBOO 16a0: 4c 20 57 54 53 45 6e 75 6d 65 72 61 74 65 53 65 L WTSEnumerateSe 16b0: 72 76 65 72 73 57 28 4c 50 57 53 54 52 20 70 44 rversW(LPWSTR pD 16c0: 6f 6d 61 69 6e 4e 61 6d 65 2c 20 44 57 4f 52 44 omainName, DWORD 16d0: 20 52 65 73 65 72 76 65 64 2c 20 44 57 4f 52 44 Reserved, DWORD 16e0: 20 56 65 72 73 69 6f 6e 2c 20 50 57 54 53 5f 53 Version, PWTS_S 16f0: 45 52 56 45 52 5f 49 4e 46 4f 57 2a 20 70 70 53 ERVER_INFOW* ppS 1700: 65 72 76 65 72 49 6e 66 6f 2c 20 44 57 4f 52 44 erverInfo, DWORD 1710: 2a 20 70 43 6f 75 6e 74 29 3b 0d 0a 09 57 49 4e * pCount);...WIN 1720: 42 4f 4f 4c 20 57 54 53 45 6e 75 6d 65 72 61 74 BOOL WTSEnumerat 1730: 65 53 65 72 76 65 72 73 41 28 4c 50 53 54 52 20 eServersA(LPSTR 1740: 70 44 6f 6d 61 69 6e 4e 61 6d 65 2c 20 44 57 4f pDomainName, DWO 1750: 52 44 20 52 65 73 65 72 76 65 64 2c 20 44 57 4f RD Reserved, DWO 1760: 52 44 20 56 65 72 73 69 6f 6e 2c 20 50 57 54 53 RD Version, PWTS 1770: 5f 53 45 52 56 45 52 5f 49 4e 46 4f 41 2a 20 70 _SERVER_INFOA* p 1780: 70 53 65 72 76 65 72 49 6e 66 6f 2c 20 44 57 4f pServerInfo, DWO 1790: 52 44 2a 20 70 43 6f 75 6e 74 29 3b 0d 0a 09 48 RD* pCount);...H 17a0: 41 4e 44 4c 45 20 57 54 53 4f 70 65 6e 53 65 72 ANDLE WTSOpenSer 17b0: 76 65 72 57 28 4c 50 57 53 54 52 20 70 53 65 72 verW(LPWSTR pSer 17c0: 76 65 72 4e 61 6d 65 29 3b 0d 0a 09 48 41 4e 44 verName);...HAND 17d0: 4c 45 20 57 54 53 4f 70 65 6e 53 65 72 76 65 72 LE WTSOpenServer 17e0: 41 28 4c 50 53 54 52 20 70 53 65 72 76 65 72 4e A(LPSTR pServerN 17f0: 61 6d 65 29 3b 0d 0a 09 56 4f 49 44 20 57 54 53 ame);...VOID WTS 1800: 43 6c 6f 73 65 53 65 72 76 65 72 28 48 41 4e 44 CloseServer(HAND 1810: 4c 45 20 68 53 65 72 76 65 72 29 3b 0d 0a 09 57 LE hServer);...W 1820: 49 4e 42 4f 4f 4c 20 57 54 53 45 6e 75 6d 65 72 INBOOL WTSEnumer 1830: 61 74 65 53 65 73 73 69 6f 6e 73 57 28 48 41 4e ateSessionsW(HAN 1840: 44 4c 45 20 68 53 65 72 76 65 72 2c 20 44 57 4f DLE hServer, DWO 1850: 52 44 20 52 65 73 65 72 76 65 64 2c 20 44 57 4f RD Reserved, DWO 1860: 52 44 20 56 65 72 73 69 6f 6e 2c 20 50 57 54 53 RD Version, PWTS 1870: 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 57 2a 20 _SESSION_INFOW* 1880: 70 70 53 65 73 73 69 6f 6e 49 6e 66 6f 2c 20 44 ppSessionInfo, D 1890: 57 4f 52 44 2a 20 70 43 6f 75 6e 74 29 3b 0d 0a WORD* pCount);.. 18a0: 09 57 49 4e 42 4f 4f 4c 20 57 54 53 45 6e 75 6d .WINBOOL WTSEnum 18b0: 65 72 61 74 65 53 65 73 73 69 6f 6e 73 41 28 48 erateSessionsA(H 18c0: 41 4e 44 4c 45 20 68 53 65 72 76 65 72 2c 20 44 ANDLE hServer, D 18d0: 57 4f 52 44 20 52 65 73 65 72 76 65 64 2c 20 44 WORD Reserved, D 18e0: 57 4f 52 44 20 56 65 72 73 69 6f 6e 2c 20 50 57 WORD Version, PW 18f0: 54 53 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 41 TS_SESSION_INFOA 1900: 2a 20 70 70 53 65 73 73 69 6f 6e 49 6e 66 6f 2c * ppSessionInfo, 1910: 20 44 57 4f 52 44 2a 20 70 43 6f 75 6e 74 29 3b DWORD* pCount); 1920: 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 45 6e ...WINBOOL WTSEn 1930: 75 6d 65 72 61 74 65 50 72 6f 63 65 73 73 65 73 umerateProcesses 1940: 57 28 48 41 4e 44 4c 45 20 68 53 65 72 76 65 72 W(HANDLE hServer 1950: 2c 20 44 57 4f 52 44 20 52 65 73 65 72 76 65 64 , DWORD Reserved 1960: 2c 20 44 57 4f 52 44 20 56 65 72 73 69 6f 6e 2c , DWORD Version, 1970: 20 50 57 54 53 5f 50 52 4f 43 45 53 53 5f 49 4e PWTS_PROCESS_IN 1980: 46 4f 57 2a 20 70 70 50 72 6f 63 65 73 73 49 6e FOW* ppProcessIn 1990: 66 6f 2c 20 44 57 4f 52 44 2a 20 70 43 6f 75 6e fo, DWORD* pCoun 19a0: 74 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 t);...WINBOOL WT 19b0: 53 45 6e 75 6d 65 72 61 74 65 50 72 6f 63 65 73 SEnumerateProces 19c0: 73 65 73 41 28 48 41 4e 44 4c 45 20 68 53 65 72 sesA(HANDLE hSer 19d0: 76 65 72 2c 20 44 57 4f 52 44 20 52 65 73 65 72 ver, DWORD Reser 19e0: 76 65 64 2c 20 44 57 4f 52 44 20 56 65 72 73 69 ved, DWORD Versi 19f0: 6f 6e 2c 20 50 57 54 53 5f 50 52 4f 43 45 53 53 on, PWTS_PROCESS 1a00: 5f 49 4e 46 4f 41 2a 20 70 70 50 72 6f 63 65 73 _INFOA* ppProces 1a10: 73 49 6e 66 6f 2c 20 44 57 4f 52 44 2a 20 70 43 sInfo, DWORD* pC 1a20: 6f 75 6e 74 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c ount);...WINBOOL 1a30: 20 57 54 53 54 65 72 6d 69 6e 61 74 65 50 72 6f WTSTerminatePro 1a40: 63 65 73 73 28 48 41 4e 44 4c 45 20 68 53 65 72 cess(HANDLE hSer 1a50: 76 65 72 2c 20 44 57 4f 52 44 20 50 72 6f 63 65 ver, DWORD Proce 1a60: 73 73 49 64 2c 20 44 57 4f 52 44 20 45 78 69 74 ssId, DWORD Exit 1a70: 43 6f 64 65 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c Code);...WINBOOL 1a80: 20 57 54 53 51 75 65 72 79 53 65 73 73 69 6f 6e WTSQuerySession 1a90: 49 6e 66 6f 72 6d 61 74 69 6f 6e 57 28 48 41 4e InformationW(HAN 1aa0: 44 4c 45 20 68 53 65 72 76 65 72 2c 20 44 57 4f DLE hServer, DWO 1ab0: 52 44 20 53 65 73 73 69 6f 6e 49 64 2c 20 57 54 RD SessionId, WT 1ac0: 53 5f 49 4e 46 4f 5f 43 4c 41 53 53 20 57 54 53 S_INFO_CLASS WTS 1ad0: 49 6e 66 6f 43 6c 61 73 73 2c 20 4c 50 57 53 54 InfoClass, LPWST 1ae0: 52 2a 20 70 70 42 75 66 66 65 72 2c 20 44 57 4f R* ppBuffer, DWO 1af0: 52 44 2a 20 70 42 79 74 65 73 52 65 74 75 72 6e RD* pBytesReturn 1b00: 65 64 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 ed);...WINBOOL W 1b10: 54 53 51 75 65 72 79 53 65 73 73 69 6f 6e 49 6e TSQuerySessionIn 1b20: 66 6f 72 6d 61 74 69 6f 6e 41 28 48 41 4e 44 4c formationA(HANDL 1b30: 45 20 68 53 65 72 76 65 72 2c 20 44 57 4f 52 44 E hServer, DWORD 1b40: 20 53 65 73 73 69 6f 6e 49 64 2c 20 57 54 53 5f SessionId, WTS_ 1b50: 49 4e 46 4f 5f 43 4c 41 53 53 20 57 54 53 49 6e INFO_CLASS WTSIn 1b60: 66 6f 43 6c 61 73 73 2c 20 4c 50 53 54 52 2a 20 foClass, LPSTR* 1b70: 70 70 42 75 66 66 65 72 2c 20 44 57 4f 52 44 2a ppBuffer, DWORD* 1b80: 20 70 42 79 74 65 73 52 65 74 75 72 6e 65 64 29 pBytesReturned) 1b90: 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 51 ;...WINBOOL WTSQ 1ba0: 75 65 72 79 55 73 65 72 43 6f 6e 66 69 67 57 28 ueryUserConfigW( 1bb0: 4c 50 57 53 54 52 20 70 53 65 72 76 65 72 4e 61 LPWSTR pServerNa 1bc0: 6d 65 2c 20 4c 50 57 53 54 52 20 70 55 73 65 72 me, LPWSTR pUser 1bd0: 4e 61 6d 65 2c 20 57 54 53 5f 43 4f 4e 46 49 47 Name, WTS_CONFIG 1be0: 5f 43 4c 41 53 53 20 57 54 53 43 6f 6e 66 69 67 _CLASS WTSConfig 1bf0: 43 6c 61 73 73 2c 20 4c 50 57 53 54 52 2a 20 70 Class, LPWSTR* p 1c00: 70 42 75 66 66 65 72 2c 20 44 57 4f 52 44 2a 20 pBuffer, DWORD* 1c10: 70 42 79 74 65 73 52 65 74 75 72 6e 65 64 29 3b pBytesReturned); 1c20: 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 51 75 ...WINBOOL WTSQu 1c30: 65 72 79 55 73 65 72 43 6f 6e 66 69 67 41 28 4c eryUserConfigA(L 1c40: 50 53 54 52 20 70 53 65 72 76 65 72 4e 61 6d 65 PSTR pServerName 1c50: 2c 20 4c 50 53 54 52 20 70 55 73 65 72 4e 61 6d , LPSTR pUserNam 1c60: 65 2c 20 57 54 53 5f 43 4f 4e 46 49 47 5f 43 4c e, WTS_CONFIG_CL 1c70: 41 53 53 20 57 54 53 43 6f 6e 66 69 67 43 6c 61 ASS WTSConfigCla 1c80: 73 73 2c 20 4c 50 53 54 52 2a 20 70 70 42 75 66 ss, LPSTR* ppBuf 1c90: 66 65 72 2c 20 44 57 4f 52 44 2a 20 70 42 79 74 fer, DWORD* pByt 1ca0: 65 73 52 65 74 75 72 6e 65 64 29 3b 0d 0a 09 57 esReturned);...W 1cb0: 49 4e 42 4f 4f 4c 20 57 54 53 53 65 74 55 73 65 INBOOL WTSSetUse 1cc0: 72 43 6f 6e 66 69 67 57 28 4c 50 57 53 54 52 20 rConfigW(LPWSTR 1cd0: 70 53 65 72 76 65 72 4e 61 6d 65 2c 20 4c 50 57 pServerName, LPW 1ce0: 53 54 52 20 70 55 73 65 72 4e 61 6d 65 2c 20 57 STR pUserName, W 1cf0: 54 53 5f 43 4f 4e 46 49 47 5f 43 4c 41 53 53 20 TS_CONFIG_CLASS 1d00: 57 54 53 43 6f 6e 66 69 67 43 6c 61 73 73 2c 20 WTSConfigClass, 1d10: 4c 50 57 53 54 52 20 70 42 75 66 66 65 72 2c 20 LPWSTR pBuffer, 1d20: 44 57 4f 52 44 20 44 61 74 61 4c 65 6e 67 74 68 DWORD DataLength 1d30: 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 );...WINBOOL WTS 1d40: 53 65 74 55 73 65 72 43 6f 6e 66 69 67 41 28 4c SetUserConfigA(L 1d50: 50 53 54 52 20 70 53 65 72 76 65 72 4e 61 6d 65 PSTR pServerName 1d60: 2c 20 4c 50 53 54 52 20 70 55 73 65 72 4e 61 6d , LPSTR pUserNam 1d70: 65 2c 20 57 54 53 5f 43 4f 4e 46 49 47 5f 43 4c e, WTS_CONFIG_CL 1d80: 41 53 53 20 57 54 53 43 6f 6e 66 69 67 43 6c 61 ASS WTSConfigCla 1d90: 73 73 2c 20 4c 50 53 54 52 20 70 42 75 66 66 65 ss, LPSTR pBuffe 1da0: 72 2c 20 44 57 4f 52 44 20 44 61 74 61 4c 65 6e r, DWORD DataLen 1db0: 67 74 68 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 gth);...WINBOOL 1dc0: 57 54 53 53 65 6e 64 4d 65 73 73 61 67 65 57 28 WTSSendMessageW( 1dd0: 48 41 4e 44 4c 45 20 68 53 65 72 76 65 72 2c 20 HANDLE hServer, 1de0: 44 57 4f 52 44 20 53 65 73 73 69 6f 6e 49 64 2c DWORD SessionId, 1df0: 20 4c 50 57 53 54 52 20 70 54 69 74 6c 65 2c 20 LPWSTR pTitle, 1e00: 44 57 4f 52 44 20 54 69 74 6c 65 4c 65 6e 67 74 DWORD TitleLengt 1e10: 68 2c 20 4c 50 57 53 54 52 20 70 4d 65 73 73 61 h, LPWSTR pMessa 1e20: 67 65 2c 20 44 57 4f 52 44 20 4d 65 73 73 61 67 ge, DWORD Messag 1e30: 65 4c 65 6e 67 74 68 2c 20 44 57 4f 52 44 20 53 eLength, DWORD S 1e40: 74 79 6c 65 2c 20 44 57 4f 52 44 20 54 69 6d 65 tyle, DWORD Time 1e50: 6f 75 74 2c 20 44 57 4f 52 44 2a 20 70 52 65 73 out, DWORD* pRes 1e60: 70 6f 6e 73 65 2c 20 57 49 4e 42 4f 4f 4c 20 62 ponse, WINBOOL b 1e70: 57 61 69 74 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c Wait);...WINBOOL 1e80: 20 57 54 53 53 65 6e 64 4d 65 73 73 61 67 65 41 WTSSendMessageA 1e90: 28 48 41 4e 44 4c 45 20 68 53 65 72 76 65 72 2c (HANDLE hServer, 1ea0: 20 44 57 4f 52 44 20 53 65 73 73 69 6f 6e 49 64 DWORD SessionId 1eb0: 2c 20 4c 50 53 54 52 20 70 54 69 74 6c 65 2c 20 , LPSTR pTitle, 1ec0: 44 57 4f 52 44 20 54 69 74 6c 65 4c 65 6e 67 74 DWORD TitleLengt 1ed0: 68 2c 20 4c 50 53 54 52 20 70 4d 65 73 73 61 67 h, LPSTR pMessag 1ee0: 65 2c 20 44 57 4f 52 44 20 4d 65 73 73 61 67 65 e, DWORD Message 1ef0: 4c 65 6e 67 74 68 2c 20 44 57 4f 52 44 20 53 74 Length, DWORD St 1f00: 79 6c 65 2c 20 44 57 4f 52 44 20 54 69 6d 65 6f yle, DWORD Timeo 1f10: 75 74 2c 20 44 57 4f 52 44 2a 20 70 52 65 73 70 ut, DWORD* pResp 1f20: 6f 6e 73 65 2c 20 57 49 4e 42 4f 4f 4c 20 62 57 onse, WINBOOL bW 1f30: 61 69 74 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 ait);...WINBOOL 1f40: 57 54 53 44 69 73 63 6f 6e 6e 65 63 74 53 65 73 WTSDisconnectSes 1f50: 73 69 6f 6e 28 48 41 4e 44 4c 45 20 68 53 65 72 sion(HANDLE hSer 1f60: 76 65 72 2c 20 44 57 4f 52 44 20 53 65 73 73 69 ver, DWORD Sessi 1f70: 6f 6e 49 64 2c 20 57 49 4e 42 4f 4f 4c 20 62 57 onId, WINBOOL bW 1f80: 61 69 74 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 ait);...WINBOOL 1f90: 57 54 53 4c 6f 67 6f 66 66 53 65 73 73 69 6f 6e WTSLogoffSession 1fa0: 28 48 41 4e 44 4c 45 20 68 53 65 72 76 65 72 2c (HANDLE hServer, 1fb0: 20 44 57 4f 52 44 20 53 65 73 73 69 6f 6e 49 64 DWORD SessionId 1fc0: 2c 20 57 49 4e 42 4f 4f 4c 20 62 57 61 69 74 29 , WINBOOL bWait) 1fd0: 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 53 ;...WINBOOL WTSS 1fe0: 68 75 74 64 6f 77 6e 53 79 73 74 65 6d 28 48 41 hutdownSystem(HA 1ff0: 4e 44 4c 45 20 68 53 65 72 76 65 72 2c 20 44 57 NDLE hServer, DW 2000: 4f 52 44 20 53 68 75 74 64 6f 77 6e 46 6c 61 67 ORD ShutdownFlag 2010: 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 );...WINBOOL WTS 2020: 57 61 69 74 53 79 73 74 65 6d 45 76 65 6e 74 28 WaitSystemEvent( 2030: 48 41 4e 44 4c 45 20 68 53 65 72 76 65 72 2c 20 HANDLE hServer, 2040: 44 57 4f 52 44 20 45 76 65 6e 74 4d 61 73 6b 2c DWORD EventMask, 2050: 20 44 57 4f 52 44 2a 20 70 45 76 65 6e 74 46 6c DWORD* pEventFl 2060: 61 67 73 29 3b 0d 0a 09 48 41 4e 44 4c 45 20 57 ags);...HANDLE W 2070: 54 53 56 69 72 74 75 61 6c 43 68 61 6e 6e 65 6c TSVirtualChannel 2080: 4f 70 65 6e 28 48 41 4e 44 4c 45 20 68 53 65 72 Open(HANDLE hSer 2090: 76 65 72 2c 20 44 57 4f 52 44 20 53 65 73 73 69 ver, DWORD Sessi 20a0: 6f 6e 49 64 2c 20 4c 50 53 54 52 20 70 56 69 72 onId, LPSTR pVir 20b0: 74 75 61 6c 4e 61 6d 65 29 3b 0d 0a 09 57 49 4e tualName);...WIN 20c0: 42 4f 4f 4c 20 57 54 53 56 69 72 74 75 61 6c 43 BOOL WTSVirtualC 20d0: 68 61 6e 6e 65 6c 43 6c 6f 73 65 28 48 41 4e 44 hannelClose(HAND 20e0: 4c 45 20 68 43 68 61 6e 6e 65 6c 48 61 6e 64 6c LE hChannelHandl 20f0: 65 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 e);...WINBOOL WT 2100: 53 56 69 72 74 75 61 6c 43 68 61 6e 6e 65 6c 52 SVirtualChannelR 2110: 65 61 64 28 48 41 4e 44 4c 45 20 68 43 68 61 6e ead(HANDLE hChan 2120: 6e 65 6c 48 61 6e 64 6c 65 2c 20 55 4c 4f 4e 47 nelHandle, ULONG 2130: 20 54 69 6d 65 4f 75 74 2c 20 50 43 48 41 52 20 TimeOut, PCHAR 2140: 42 75 66 66 65 72 2c 20 55 4c 4f 4e 47 20 42 75 Buffer, ULONG Bu 2150: 66 66 65 72 53 69 7a 65 2c 20 50 55 4c 4f 4e 47 fferSize, PULONG 2160: 20 70 42 79 74 65 73 52 65 61 64 29 3b 0d 0a 09 pBytesRead);... 2170: 57 49 4e 42 4f 4f 4c 20 57 54 53 56 69 72 74 75 WINBOOL WTSVirtu 2180: 61 6c 43 68 61 6e 6e 65 6c 57 72 69 74 65 28 48 alChannelWrite(H 2190: 41 4e 44 4c 45 20 68 43 68 61 6e 6e 65 6c 48 61 ANDLE hChannelHa 21a0: 6e 64 6c 65 2c 20 50 43 48 41 52 20 42 75 66 66 ndle, PCHAR Buff 21b0: 65 72 2c 20 55 4c 4f 4e 47 20 4c 65 6e 67 74 68 er, ULONG Length 21c0: 2c 20 50 55 4c 4f 4e 47 20 70 42 79 74 65 73 57 , PULONG pBytesW 21d0: 72 69 74 74 65 6e 29 3b 0d 0a 09 57 49 4e 42 4f ritten);...WINBO 21e0: 4f 4c 20 57 54 53 56 69 72 74 75 61 6c 43 68 61 OL WTSVirtualCha 21f0: 6e 6e 65 6c 50 75 72 67 65 49 6e 70 75 74 28 48 nnelPurgeInput(H 2200: 41 4e 44 4c 45 20 68 43 68 61 6e 6e 65 6c 48 61 ANDLE hChannelHa 2210: 6e 64 6c 65 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c ndle);...WINBOOL 2220: 20 57 54 53 56 69 72 74 75 61 6c 43 68 61 6e 6e WTSVirtualChann 2230: 65 6c 50 75 72 67 65 4f 75 74 70 75 74 28 48 41 elPurgeOutput(HA 2240: 4e 44 4c 45 20 68 43 68 61 6e 6e 65 6c 48 61 6e NDLE hChannelHan 2250: 64 6c 65 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 dle);...WINBOOL 2260: 57 54 53 56 69 72 74 75 61 6c 43 68 61 6e 6e 65 WTSVirtualChanne 2270: 6c 51 75 65 72 79 28 48 41 4e 44 4c 45 20 68 43 lQuery(HANDLE hC 2280: 68 61 6e 6e 65 6c 48 61 6e 64 6c 65 2c 20 57 54 hannelHandle, WT 2290: 53 5f 56 49 52 54 55 41 4c 5f 43 4c 41 53 53 2c S_VIRTUAL_CLASS, 22a0: 20 50 56 4f 49 44 2a 20 70 70 42 75 66 66 65 72 PVOID* ppBuffer 22b0: 2c 20 44 57 4f 52 44 2a 20 70 42 79 74 65 73 52 , DWORD* pBytesR 22c0: 65 74 75 72 6e 65 64 29 3b 0d 0a 09 56 4f 49 44 eturned);...VOID 22d0: 20 57 54 53 46 72 65 65 4d 65 6d 6f 72 79 28 50 WTSFreeMemory(P 22e0: 56 4f 49 44 20 70 4d 65 6d 6f 72 79 29 3b 0d 0a VOID pMemory);.. 22f0: 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 54 53 52 65 ...WINBOOL WTSRe 2300: 67 69 73 74 65 72 53 65 73 73 69 6f 6e 4e 6f 74 gisterSessionNot 2310: 69 66 69 63 61 74 69 6f 6e 28 48 57 4e 44 20 68 ification(HWND h 2320: 57 6e 64 2c 20 44 57 4f 52 44 20 64 77 46 6c 61 Wnd, DWORD dwFla 2330: 67 73 29 3b 0d 0a 09 57 49 4e 42 4f 4f 4c 20 57 gs);...WINBOOL W 2340: 54 53 55 6e 52 65 67 69 73 74 65 72 53 65 73 73 TSUnRegisterSess 2350: 69 6f 6e 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 ionNotification( 2360: 48 57 4e 44 20 68 57 6e 64 29 3b 0d 0a 09 57 49 HWND hWnd);...WI 2370: 4e 42 4f 4f 4c 20 57 54 53 51 75 65 72 79 55 73 NBOOL WTSQueryUs 2380: 65 72 54 6f 6b 65 6e 28 55 4c 4f 4e 47 20 53 65 erToken(ULONG Se 2390: 73 73 69 6f 6e 49 64 2c 20 50 48 41 4e 44 4c 45 ssionId, PHANDLE 23a0: 20 70 68 54 6f 6b 65 6e 29 3b 0d 0a 7d 0d 0a 0d phToken);..}... 23b0: 0a 65 6e 75 6d 20 7b 0d 0a 09 4e 4f 54 49 46 59 .enum {...NOTIFY 23c0: 5f 46 4f 52 5f 41 4c 4c 5f 53 45 53 53 49 4f 4e _FOR_ALL_SESSION 23d0: 53 20 3d 20 31 2c 0d 0a 09 4e 4f 54 49 46 59 5f S = 1,...NOTIFY_ 23e0: 46 4f 52 5f 54 48 49 53 5f 53 45 53 53 49 4f 4e FOR_THIS_SESSION 23f0: 20 3d 20 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 = 0..}....enum 2400: 7b 0d 0a 09 55 53 45 52 4e 41 4d 45 5f 4c 45 4e {...USERNAME_LEN 2410: 47 54 48 20 20 20 20 20 20 20 3d 20 32 30 2c 0d GTH = 20,. 2420: 0a 09 43 4c 49 45 4e 54 4e 41 4d 45 5f 4c 45 4e ..CLIENTNAME_LEN 2430: 47 54 48 20 20 20 20 20 3d 20 32 30 2c 0d 0a 09 GTH = 20,... 2440: 43 4c 49 45 4e 54 41 44 44 52 45 53 53 5f 4c 45 CLIENTADDRESS_LE 2450: 4e 47 54 48 20 20 3d 20 33 30 2c 0d 0a 09 57 49 NGTH = 30,...WI 2460: 4e 53 54 41 54 49 4f 4e 4e 41 4d 45 5f 4c 45 4e NSTATIONNAME_LEN 2470: 47 54 48 20 3d 20 33 32 2c 0d 0a 09 44 4f 4d 41 GTH = 32,...DOMA 2480: 49 4e 5f 4c 45 4e 47 54 48 20 20 20 20 20 20 20 IN_LENGTH 2490: 20 20 3d 20 31 37 0d 0a 7d 0d 0a 0d 0a 73 74 61 = 17..}....sta 24a0: 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 57 tic if (_WIN32_W 24b0: 49 4e 4e 54 20 3e 3d 20 30 78 36 30 30 29 20 7b INNT >= 0x600) { 24c0: 0d 0a 09 73 74 72 75 63 74 20 57 54 53 43 4c 49 ...struct WTSCLI 24d0: 45 4e 54 57 20 7b 0d 0a 09 09 57 43 48 41 52 20 ENTW {....WCHAR 24e0: 20 20 43 6c 69 65 6e 74 4e 61 6d 65 5b 43 4c 49 ClientName[CLI 24f0: 45 4e 54 4e 41 4d 45 5f 4c 45 4e 47 54 48 20 2b ENTNAME_LENGTH + 2500: 20 31 5d 3b 0d 0a 09 09 57 43 48 41 52 20 20 20 1];....WCHAR 2510: 44 6f 6d 61 69 6e 5b 44 4f 4d 41 49 4e 5f 4c 45 Domain[DOMAIN_LE 2520: 4e 47 54 48 20 2b 20 31 5d 3b 0d 0a 09 09 57 43 NGTH + 1];....WC 2530: 48 41 52 20 20 20 55 73 65 72 4e 61 6d 65 5b 55 HAR UserName[U 2540: 53 45 52 4e 41 4d 45 5f 4c 45 4e 47 54 48 20 2b SERNAME_LENGTH + 2550: 20 31 5d 3b 0d 0a 09 09 57 43 48 41 52 20 20 20 1];....WCHAR 2560: 57 6f 72 6b 44 69 72 65 63 74 6f 72 79 5b 4d 41 WorkDirectory[MA 2570: 58 5f 50 41 54 48 20 2b 20 31 5d 3b 0d 0a 09 09 X_PATH + 1];.... 2580: 57 43 48 41 52 20 20 20 49 6e 69 74 69 61 6c 50 WCHAR InitialP 2590: 72 6f 67 72 61 6d 5b 4d 41 58 5f 50 41 54 48 20 rogram[MAX_PATH 25a0: 2b 20 31 5d 3b 0d 0a 09 09 42 59 54 45 20 20 20 + 1];....BYTE 25b0: 20 45 6e 63 72 79 70 74 69 6f 6e 4c 65 76 65 6c EncryptionLevel 25c0: 3b 0d 0a 09 09 55 4c 4f 4e 47 20 20 20 43 6c 69 ;....ULONG Cli 25d0: 65 6e 74 41 64 64 72 65 73 73 46 61 6d 69 6c 79 entAddressFamily 25e0: 3b 0d 0a 09 09 55 53 48 4f 52 54 20 20 43 6c 69 ;....USHORT Cli 25f0: 65 6e 74 41 64 64 72 65 73 73 5b 43 4c 49 45 4e entAddress[CLIEN 2600: 54 41 44 44 52 45 53 53 5f 4c 45 4e 47 54 48 20 TADDRESS_LENGTH 2610: 2b 20 31 5d 3b 0d 0a 09 09 55 53 48 4f 52 54 20 + 1];....USHORT 2620: 20 48 52 65 73 3b 0d 0a 09 09 55 53 48 4f 52 54 HRes;....USHORT 2630: 20 20 56 52 65 73 3b 0d 0a 09 09 55 53 48 4f 52 VRes;....USHOR 2640: 54 20 20 43 6f 6c 6f 72 44 65 70 74 68 3b 0d 0a T ColorDepth;.. 2650: 09 09 57 43 48 41 52 20 20 20 43 6c 69 65 6e 74 ..WCHAR Client 2660: 44 69 72 65 63 74 6f 72 79 5b 4d 41 58 5f 50 41 Directory[MAX_PA 2670: 54 48 20 2b 20 31 5d 3b 0d 0a 09 09 55 4c 4f 4e TH + 1];....ULON 2680: 47 20 20 20 43 6c 69 65 6e 74 42 75 69 6c 64 4e G ClientBuildN 2690: 75 6d 62 65 72 3b 0d 0a 09 09 55 4c 4f 4e 47 20 umber;....ULONG 26a0: 20 20 43 6c 69 65 6e 74 48 61 72 64 77 61 72 65 ClientHardware 26b0: 49 64 3b 0d 0a 09 09 55 53 48 4f 52 54 20 20 43 Id;....USHORT C 26c0: 6c 69 65 6e 74 50 72 6f 64 75 63 74 49 64 3b 0d lientProductId;. 26d0: 0a 09 09 55 53 48 4f 52 54 20 20 4f 75 74 42 75 ...USHORT OutBu 26e0: 66 43 6f 75 6e 74 48 6f 73 74 3b 0d 0a 09 09 55 fCountHost;....U 26f0: 53 48 4f 52 54 20 20 4f 75 74 42 75 66 43 6f 75 SHORT OutBufCou 2700: 6e 74 43 6c 69 65 6e 74 3b 0d 0a 09 09 55 53 48 ntClient;....USH 2710: 4f 52 54 20 20 4f 75 74 42 75 66 4c 65 6e 67 74 ORT OutBufLengt 2720: 68 3b 0d 0a 09 09 57 43 48 41 52 20 20 20 44 65 h;....WCHAR De 2730: 76 69 63 65 49 64 5b 4d 41 58 5f 50 41 54 48 20 viceId[MAX_PATH 2740: 2b 20 31 5d 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 + 1];...}...alia 2750: 73 20 57 54 53 43 4c 49 45 4e 54 57 2a 20 50 57 s WTSCLIENTW* PW 2760: 54 53 43 4c 49 45 4e 54 57 3b 0d 0a 0d 0a 09 73 TSCLIENTW;.....s 2770: 74 72 75 63 74 20 57 54 53 43 4c 49 45 4e 54 41 truct WTSCLIENTA 2780: 20 7b 0d 0a 09 09 43 48 41 52 20 20 20 20 43 6c {....CHAR Cl 2790: 69 65 6e 74 4e 61 6d 65 5b 43 4c 49 45 4e 54 4e ientName[CLIENTN 27a0: 41 4d 45 5f 4c 45 4e 47 54 48 20 2b 20 31 5d 3b AME_LENGTH + 1]; 27b0: 0d 0a 09 09 43 48 41 52 20 20 20 20 44 6f 6d 61 ....CHAR Doma 27c0: 69 6e 5b 44 4f 4d 41 49 4e 5f 4c 45 4e 47 54 48 in[DOMAIN_LENGTH 27d0: 20 2b 20 31 20 5d 3b 0d 0a 09 09 43 48 41 52 20 + 1 ];....CHAR 27e0: 20 20 20 55 73 65 72 4e 61 6d 65 5b 55 53 45 52 UserName[USER 27f0: 4e 41 4d 45 5f 4c 45 4e 47 54 48 20 2b 20 31 5d NAME_LENGTH + 1] 2800: 3b 0d 0a 09 09 43 48 41 52 20 20 20 20 57 6f 72 ;....CHAR Wor 2810: 6b 44 69 72 65 63 74 6f 72 79 5b 4d 41 58 5f 50 kDirectory[MAX_P 2820: 41 54 48 20 2b 20 31 5d 3b 0d 0a 09 09 43 48 41 ATH + 1];....CHA 2830: 52 20 20 20 20 49 6e 69 74 69 61 6c 50 72 6f 67 R InitialProg 2840: 72 61 6d 5b 4d 41 58 5f 50 41 54 48 20 2b 20 31 ram[MAX_PATH + 1 2850: 5d 3b 0d 0a 09 09 42 59 54 45 20 20 20 20 45 6e ];....BYTE En 2860: 63 72 79 70 74 69 6f 6e 4c 65 76 65 6c 3b 0d 0a cryptionLevel;.. 2870: 09 09 55 4c 4f 4e 47 20 20 20 43 6c 69 65 6e 74 ..ULONG Client 2880: 41 64 64 72 65 73 73 46 61 6d 69 6c 79 3b 0d 0a AddressFamily;.. 2890: 09 09 55 53 48 4f 52 54 20 20 43 6c 69 65 6e 74 ..USHORT Client 28a0: 41 64 64 72 65 73 73 5b 43 4c 49 45 4e 54 41 44 Address[CLIENTAD 28b0: 44 52 45 53 53 5f 4c 45 4e 47 54 48 20 2b 20 31 DRESS_LENGTH + 1 28c0: 5d 3b 0d 0a 09 09 55 53 48 4f 52 54 20 20 48 52 ];....USHORT HR 28d0: 65 73 3b 0d 0a 09 09 55 53 48 4f 52 54 20 20 56 es;....USHORT V 28e0: 52 65 73 3b 0d 0a 09 09 55 53 48 4f 52 54 20 20 Res;....USHORT 28f0: 43 6f 6c 6f 72 44 65 70 74 68 3b 0d 0a 09 09 43 ColorDepth;....C 2900: 48 41 52 20 20 20 20 43 6c 69 65 6e 74 44 69 72 HAR ClientDir 2910: 65 63 74 6f 72 79 5b 4d 41 58 5f 50 41 54 48 20 ectory[MAX_PATH 2920: 2b 20 31 5d 3b 0d 0a 09 09 55 4c 4f 4e 47 20 20 + 1];....ULONG 2930: 20 43 6c 69 65 6e 74 42 75 69 6c 64 4e 75 6d 62 ClientBuildNumb 2940: 65 72 3b 0d 0a 09 09 55 4c 4f 4e 47 20 20 20 43 er;....ULONG C 2950: 6c 69 65 6e 74 48 61 72 64 77 61 72 65 49 64 3b lientHardwareId; 2960: 0d 0a 09 09 55 53 48 4f 52 54 20 20 43 6c 69 65 ....USHORT Clie 2970: 6e 74 50 72 6f 64 75 63 74 49 64 3b 0d 0a 09 09 ntProductId;.... 2980: 55 53 48 4f 52 54 20 20 4f 75 74 42 75 66 43 6f USHORT OutBufCo 2990: 75 6e 74 48 6f 73 74 3b 0d 0a 09 09 55 53 48 4f untHost;....USHO 29a0: 52 54 20 20 4f 75 74 42 75 66 43 6f 75 6e 74 43 RT OutBufCountC 29b0: 6c 69 65 6e 74 3b 0d 0a 09 09 55 53 48 4f 52 54 lient;....USHORT 29c0: 20 20 4f 75 74 42 75 66 4c 65 6e 67 74 68 3b 0d OutBufLength;. 29d0: 0a 09 09 43 48 41 52 20 20 20 20 44 65 76 69 63 ...CHAR Devic 29e0: 65 49 64 5b 4d 41 58 5f 50 41 54 48 20 2b 20 31 eId[MAX_PATH + 1 29f0: 5d 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 57 ];...}...alias W 2a00: 54 53 43 4c 49 45 4e 54 41 2a 20 50 57 54 53 43 TSCLIENTA* PWTSC 2a10: 4c 49 45 4e 54 41 3b 0d 0a 0d 0a 09 76 65 72 73 LIENTA;.....vers 2a20: 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a ion(Unicode) {.. 2a30: 09 09 61 6c 69 61 73 20 57 54 53 43 4c 49 45 4e ..alias WTSCLIEN 2a40: 54 57 20 20 57 54 53 43 4c 49 45 4e 54 3b 0d 0a TW WTSCLIENT;.. 2a50: 09 09 61 6c 69 61 73 20 50 57 54 53 43 4c 49 45 ..alias PWTSCLIE 2a60: 4e 54 57 20 50 57 54 53 43 4c 49 45 4e 54 3b 0d NTW PWTSCLIENT;. 2a70: 0a 09 7d 20 65 6c 73 65 20 7b 0d 0a 09 09 61 6c ..} else {....al 2a80: 69 61 73 20 57 54 53 43 4c 49 45 4e 54 41 20 20 ias WTSCLIENTA 2a90: 57 54 53 43 4c 49 45 4e 54 3b 0d 0a 09 09 61 6c WTSCLIENT;....al 2aa0: 69 61 73 20 50 57 54 53 43 4c 49 45 4e 54 41 20 ias PWTSCLIENTA 2ab0: 50 57 54 53 43 4c 49 45 4e 54 3b 0d 0a 09 7d 0d PWTSCLIENT;...}. 2ac0: 0a 0d 0a 09 73 74 72 75 63 74 20 57 54 53 49 4e ....struct WTSIN 2ad0: 46 4f 57 20 7b 0d 0a 09 09 57 54 53 5f 43 4f 4e FOW {....WTS_CON 2ae0: 4e 45 43 54 53 54 41 54 45 5f 43 4c 41 53 53 20 NECTSTATE_CLASS 2af0: 53 74 61 74 65 3b 0d 0a 09 09 44 57 4f 52 44 20 State;....DWORD 2b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b10: 20 53 65 73 73 69 6f 6e 49 64 3b 0d 0a 09 09 44 SessionId;....D 2b20: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 WORD 2b30: 20 20 20 20 20 20 49 6e 63 6f 6d 69 6e 67 42 79 IncomingBy 2b40: 74 65 73 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 tes;....DWORD 2b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f O 2b60: 75 74 67 6f 69 6e 67 42 79 74 65 73 3b 0d 0a 09 utgoingBytes;... 2b70: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 .DWORD 2b80: 20 20 20 20 20 20 20 20 49 6e 63 6f 6d 69 6e 67 Incoming 2b90: 43 6f 6d 70 72 65 73 73 65 64 42 79 74 65 73 3b CompressedBytes; 2ba0: 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 ....DWORD 2bb0: 20 20 20 20 20 20 20 20 20 20 20 4f 75 74 67 6f Outgo 2bc0: 69 6e 67 43 6f 6d 70 72 65 73 73 65 64 42 79 74 ingCompressedByt 2bd0: 65 73 3b 0d 0a 09 09 57 43 48 41 52 20 20 20 20 es;....WCHAR 2be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 69 Wi 2bf0: 6e 53 74 61 74 69 6f 6e 4e 61 6d 65 5b 57 49 4e nStationName[WIN 2c00: 53 54 41 54 49 4f 4e 4e 41 4d 45 5f 4c 45 4e 47 STATIONNAME_LENG 2c10: 54 48 5d 3b 0d 0a 09 09 57 43 48 41 52 20 20 20 TH];....WCHAR 2c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 D 2c30: 6f 6d 61 69 6e 5b 44 4f 4d 41 49 4e 5f 4c 45 4e omain[DOMAIN_LEN 2c40: 47 54 48 5d 3b 0d 0a 09 09 57 43 48 41 52 20 20 GTH];....WCHAR 2c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c60: 55 73 65 72 4e 61 6d 65 5b 55 53 45 52 4e 41 4d UserName[USERNAM 2c70: 45 5f 4c 45 4e 47 54 48 2b 31 5d 3b 0d 0a 09 09 E_LENGTH+1];.... 2c80: 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 20 20 LARGE_INTEGER 2c90: 20 20 20 20 20 20 20 43 6f 6e 6e 65 63 74 54 69 ConnectTi 2ca0: 6d 65 3b 0d 0a 09 09 4c 41 52 47 45 5f 49 4e 54 me;....LARGE_INT 2cb0: 45 47 45 52 20 20 20 20 20 20 20 20 20 20 44 69 EGER Di 2cc0: 73 63 6f 6e 6e 65 63 74 54 69 6d 65 3b 0d 0a 09 sconnectTime;... 2cd0: 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 20 .LARGE_INTEGER 2ce0: 20 20 20 20 20 20 20 20 4c 61 73 74 49 6e 70 75 LastInpu 2cf0: 74 54 69 6d 65 3b 0d 0a 09 09 4c 41 52 47 45 5f tTime;....LARGE_ 2d00: 49 4e 54 45 47 45 52 20 20 20 20 20 20 20 20 20 INTEGER 2d10: 20 4c 6f 67 6f 6e 54 69 6d 65 3b 0d 0a 09 09 4c LogonTime;....L 2d20: 41 52 47 45 5f 49 4e 54 45 47 45 52 20 20 20 20 ARGE_INTEGER 2d30: 20 20 20 20 20 20 43 75 72 72 65 6e 74 54 69 6d CurrentTim 2d40: 65 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 57 e;...}...alias W 2d50: 54 53 49 4e 46 4f 57 2a 20 50 57 54 53 49 4e 46 TSINFOW* PWTSINF 2d60: 4f 57 3b 0d 0a 0d 0a 09 73 74 72 75 63 74 20 57 OW;.....struct W 2d70: 54 53 49 4e 46 4f 41 20 7b 0d 0a 09 09 57 54 53 TSINFOA {....WTS 2d80: 5f 43 4f 4e 4e 45 43 54 53 54 41 54 45 5f 43 4c _CONNECTSTATE_CL 2d90: 41 53 53 20 53 74 61 74 65 3b 0d 0a 09 09 44 57 ASS State;....DW 2da0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 ORD 2db0: 20 20 20 20 20 53 65 73 73 69 6f 6e 49 64 3b 0d SessionId;. 2dc0: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 ...DWORD 2dd0: 20 20 20 20 20 20 20 20 20 20 49 6e 63 6f 6d 69 Incomi 2de0: 6e 67 42 79 74 65 73 3b 0d 0a 09 09 44 57 4f 52 ngBytes;....DWOR 2df0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 D 2e00: 20 20 20 4f 75 74 67 6f 69 6e 67 42 79 74 65 73 OutgoingBytes 2e10: 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 ;....DWORD 2e20: 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 63 6f Inco 2e30: 6d 69 6e 67 43 6f 6d 70 72 65 73 73 65 64 42 79 mingCompressedBy 2e40: 74 65 73 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 tes;....DWORD 2e50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f O 2e60: 75 74 67 6f 69 6e 67 43 6f 6d 70 72 65 73 73 65 utgoingCompresse 2e70: 64 42 79 74 65 73 3b 0d 0a 09 09 43 48 41 52 20 dBytes;....CHAR 2e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e90: 20 20 57 69 6e 53 74 61 74 69 6f 6e 4e 61 6d 65 WinStationName 2ea0: 5b 57 49 4e 53 54 41 54 49 4f 4e 4e 41 4d 45 5f [WINSTATIONNAME_ 2eb0: 4c 45 4e 47 54 48 5d 3b 0d 0a 09 09 43 48 41 52 LENGTH];....CHAR 2ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2ed0: 20 20 20 44 6f 6d 61 69 6e 5b 44 4f 4d 41 49 4e Domain[DOMAIN 2ee0: 5f 4c 45 4e 47 54 48 5d 3b 0d 0a 09 09 43 48 41 _LENGTH];....CHA 2ef0: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R 2f00: 20 20 20 20 55 73 65 72 4e 61 6d 65 5b 55 53 45 UserName[USE 2f10: 52 4e 41 4d 45 5f 4c 45 4e 47 54 48 2b 31 5d 3b RNAME_LENGTH+1]; 2f20: 0d 0a 09 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 ....LARGE_INTEGE 2f30: 52 20 20 20 20 20 20 20 20 20 20 43 6f 6e 6e 65 R Conne 2f40: 63 74 54 69 6d 65 3b 0d 0a 09 09 4c 41 52 47 45 ctTime;....LARGE 2f50: 5f 49 4e 54 45 47 45 52 20 20 20 20 20 20 20 20 _INTEGER 2f60: 20 20 44 69 73 63 6f 6e 6e 65 63 74 54 69 6d 65 DisconnectTime 2f70: 3b 0d 0a 09 09 4c 41 52 47 45 5f 49 4e 54 45 47 ;....LARGE_INTEG 2f80: 45 52 20 20 20 20 20 20 20 20 20 20 4c 61 73 74 ER Last 2f90: 49 6e 70 75 74 54 69 6d 65 3b 0d 0a 09 09 4c 41 InputTime;....LA 2fa0: 52 47 45 5f 49 4e 54 45 47 45 52 20 20 20 20 20 RGE_INTEGER 2fb0: 20 20 20 20 20 4c 6f 67 6f 6e 54 69 6d 65 3b 0d LogonTime;. 2fc0: 0a 09 09 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 ...LARGE_INTEGER 2fd0: 20 20 20 20 20 20 20 20 20 20 43 75 72 72 65 6e Curren 2fe0: 74 54 69 6d 65 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 tTime;...}...ali 2ff0: 61 73 20 57 54 53 49 4e 46 4f 41 2a 20 50 57 54 as WTSINFOA* PWT 3000: 53 49 4e 46 4f 41 3b 0d 0a 0d 0a 09 76 65 72 73 SINFOA;.....vers 3010: 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a ion(Unicode) {.. 3020: 09 09 61 6c 69 61 73 20 57 54 53 49 4e 46 4f 57 ..alias WTSINFOW 3030: 20 20 57 54 53 49 4e 46 4f 3b 0d 0a 09 09 61 6c WTSINFO;....al 3040: 69 61 73 20 50 57 54 53 49 4e 46 4f 57 20 50 57 ias PWTSINFOW PW 3050: 54 53 49 4e 46 4f 3b 0d 0a 09 7d 20 65 6c 73 65 TSINFO;...} else 3060: 20 7b 0d 0a 09 09 61 6c 69 61 73 20 57 54 53 49 {....alias WTSI 3070: 4e 46 4f 41 20 20 57 54 53 49 4e 46 4f 3b 0d 0a NFOA WTSINFO;.. 3080: 09 09 61 6c 69 61 73 20 50 57 54 53 49 4e 46 4f ..alias PWTSINFO 3090: 41 20 50 57 54 53 49 4e 46 4f 3b 0d 0a 09 7d 0d A PWTSINFO;...}. 30a0: 0a 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f ....extern(Windo 30b0: 77 73 29 20 7b 0d 0a 09 09 57 49 4e 42 4f 4f 4c ws) {....WINBOOL 30c0: 20 57 54 53 43 6f 6e 6e 65 63 74 53 65 73 73 69 WTSConnectSessi 30d0: 6f 6e 41 28 0d 0a 09 09 09 55 4c 4f 4e 47 20 4c onA(.....ULONG L 30e0: 6f 67 6f 6e 49 64 2c 0d 0a 09 09 09 55 4c 4f 4e ogonId,.....ULON 30f0: 47 20 54 61 72 67 65 74 4c 6f 67 6f 6e 49 64 2c G TargetLogonId, 3100: 0d 0a 09 09 09 50 53 54 52 20 20 20 70 50 61 73 .....PSTR pPas 3110: 73 77 6f 72 64 2c 0d 0a 09 09 09 57 49 4e 42 4f sword,.....WINBO 3120: 4f 4c 20 62 57 61 69 74 0d 0a 09 09 29 3b 0d 0a OL bWait....);.. 3130: 0d 0a 09 09 57 49 4e 42 4f 4f 4c 20 57 54 53 43 ....WINBOOL WTSC 3140: 6f 6e 6e 65 63 74 53 65 73 73 69 6f 6e 57 28 0d onnectSessionW(. 3150: 0a 09 09 09 55 4c 4f 4e 47 20 4c 6f 67 6f 6e 49 ....ULONG LogonI 3160: 64 2c 0d 0a 09 09 09 55 4c 4f 4e 47 20 54 61 72 d,.....ULONG Tar 3170: 67 65 74 4c 6f 67 6f 6e 49 64 2c 0d 0a 09 09 09 getLogonId,..... 3180: 50 57 53 54 52 20 20 70 50 61 73 73 77 6f 72 64 PWSTR pPassword 3190: 2c 0d 0a 09 09 09 57 49 4e 42 4f 4f 4c 20 62 57 ,.....WINBOOL bW 31a0: 61 69 74 0d 0a 09 09 29 3b 0d 0a 0d 0a 09 09 57 ait....);......W 31b0: 49 4e 42 4f 4f 4c 20 57 54 53 52 65 67 69 73 74 INBOOL WTSRegist 31c0: 65 72 53 65 73 73 69 6f 6e 4e 6f 74 69 66 69 63 erSessionNotific 31d0: 61 74 69 6f 6e 45 78 28 0d 0a 09 09 09 48 41 4e ationEx(.....HAN 31e0: 44 4c 45 20 68 53 65 72 76 65 72 2c 0d 0a 09 09 DLE hServer,.... 31f0: 09 48 57 4e 44 20 68 57 6e 64 2c 0d 0a 09 09 09 .HWND hWnd,..... 3200: 44 57 4f 52 44 20 64 77 46 6c 61 67 73 0d 0a 09 DWORD dwFlags... 3210: 09 29 3b 0d 0a 0d 0a 09 09 57 49 4e 42 4f 4f 4c .);......WINBOOL 3220: 20 57 54 53 53 74 61 72 74 52 65 6d 6f 74 65 43 WTSStartRemoteC 3230: 6f 6e 74 72 6f 6c 53 65 73 73 69 6f 6e 41 28 0d ontrolSessionA(. 3240: 0a 09 09 09 4c 50 53 54 52 20 70 54 61 72 67 65 ....LPSTR pTarge 3250: 74 53 65 72 76 65 72 4e 61 6d 65 2c 0d 0a 09 09 tServerName,.... 3260: 09 55 4c 4f 4e 47 20 54 61 72 67 65 74 4c 6f 67 .ULONG TargetLog 3270: 6f 6e 49 64 2c 0d 0a 09 09 09 42 59 54 45 20 48 onId,.....BYTE H 3280: 6f 74 6b 65 79 56 6b 2c 0d 0a 09 09 09 55 53 48 otkeyVk,.....USH 3290: 4f 52 54 20 48 6f 74 6b 65 79 4d 6f 64 69 66 69 ORT HotkeyModifi 32a0: 65 72 73 0d 0a 09 09 29 3b 0d 0a 0d 0a 09 09 57 ers....);......W 32b0: 49 4e 42 4f 4f 4c 20 57 54 53 53 74 61 72 74 52 INBOOL WTSStartR 32c0: 65 6d 6f 74 65 43 6f 6e 74 72 6f 6c 53 65 73 73 emoteControlSess 32d0: 69 6f 6e 57 28 0d 0a 09 09 09 4c 50 57 53 54 52 ionW(.....LPWSTR 32e0: 20 70 54 61 72 67 65 74 53 65 72 76 65 72 4e 61 pTargetServerNa 32f0: 6d 65 2c 0d 0a 09 09 09 55 4c 4f 4e 47 20 54 61 me,.....ULONG Ta 3300: 72 67 65 74 4c 6f 67 6f 6e 49 64 2c 0d 0a 09 09 rgetLogonId,.... 3310: 09 42 59 54 45 20 48 6f 74 6b 65 79 56 6b 2c 0d .BYTE HotkeyVk,. 3320: 0a 09 09 09 55 53 48 4f 52 54 20 48 6f 74 6b 65 ....USHORT Hotke 3330: 79 4d 6f 64 69 66 69 65 72 73 0d 0a 09 09 29 3b yModifiers....); 3340: 0d 0a 0d 0a 09 09 76 65 72 73 69 6f 6e 28 55 6e ......version(Un 3350: 69 63 6f 64 65 29 20 7b 0d 0a 09 09 09 61 6c 69 icode) {.....ali 3360: 61 73 20 57 54 53 53 74 61 72 74 52 65 6d 6f 74 as WTSStartRemot 3370: 65 43 6f 6e 74 72 6f 6c 53 65 73 73 69 6f 6e 57 eControlSessionW 3380: 20 57 54 53 53 74 61 72 74 52 65 6d 6f 74 65 43 WTSStartRemoteC 3390: 6f 6e 74 72 6f 6c 53 65 73 73 69 6f 6e 3b 0d 0a ontrolSession;.. 33a0: 09 09 09 61 6c 69 61 73 20 57 54 53 43 6f 6e 6e ...alias WTSConn 33b0: 65 63 74 53 65 73 73 69 6f 6e 57 20 57 54 53 43 ectSessionW WTSC 33c0: 6f 6e 6e 65 63 74 53 65 73 73 69 6f 6e 3b 0d 0a onnectSession;.. 33d0: 09 09 7d 20 65 6c 73 65 20 7b 0d 0a 09 09 09 61 ..} else {.....a 33e0: 6c 69 61 73 20 57 54 53 53 74 61 72 74 52 65 6d lias WTSStartRem 33f0: 6f 74 65 43 6f 6e 74 72 6f 6c 53 65 73 73 69 6f oteControlSessio 3400: 6e 41 20 57 54 53 53 74 61 72 74 52 65 6d 6f 74 nA WTSStartRemot 3410: 65 43 6f 6e 74 72 6f 6c 53 65 73 73 69 6f 6e 3b eControlSession; 3420: 0d 0a 09 09 09 61 6c 69 61 73 20 57 54 53 43 6f .....alias WTSCo 3430: 6e 6e 65 63 74 53 65 73 73 69 6f 6e 41 20 57 54 nnectSessionA WT 3440: 53 43 6f 6e 6e 65 63 74 53 65 73 73 69 6f 6e 3b SConnectSession; 3450: 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 57 49 4e 42 4f ....}......WINBO 3460: 4f 4c 20 57 54 53 53 74 6f 70 52 65 6d 6f 74 65 OL WTSStopRemote 3470: 43 6f 6e 74 72 6f 6c 53 65 73 73 69 6f 6e 28 0d ControlSession(. 3480: 0a 09 09 09 55 4c 4f 4e 47 20 4c 6f 67 6f 6e 49 ....ULONG LogonI 3490: 64 0d 0a 09 09 29 3b 0d 0a 0d 0a 09 09 57 49 4e d....);......WIN 34a0: 42 4f 4f 4c 20 57 54 53 55 6e 52 65 67 69 73 74 BOOL WTSUnRegist 34b0: 65 72 53 65 73 73 69 6f 6e 4e 6f 74 69 66 69 63 erSessionNotific 34c0: 61 74 69 6f 6e 45 78 28 0d 0a 09 09 09 48 41 4e ationEx(.....HAN 34d0: 44 4c 45 20 68 53 65 72 76 65 72 2c 0d 0a 09 09 DLE hServer,.... 34e0: 09 48 57 4e 44 20 68 57 6e 64 0d 0a 09 09 29 3b .HWND hWnd....); 34f0: 0d 0a 0d 0a 09 09 48 41 4e 44 4c 45 20 57 54 53 ......HANDLE WTS 3500: 56 69 72 74 75 61 6c 43 68 61 6e 6e 65 6c 4f 70 VirtualChannelOp 3510: 65 6e 45 78 28 0d 0a 09 09 09 44 57 4f 52 44 20 enEx(.....DWORD 3520: 53 65 73 73 69 6f 6e 49 64 2c 0d 0a 09 09 09 4c SessionId,.....L 3530: 50 53 54 52 20 70 56 69 72 74 75 61 6c 4e 61 6d PSTR pVirtualNam 3540: 65 2c 0d 0a 09 09 09 44 57 4f 52 44 20 66 6c 61 e,.....DWORD fla 3550: 67 73 0d 0a 09 09 29 3b 0d 0a 09 7d 20 2f 2a 20 gs....);...} /* 3560: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 extern(Windows) 3570: 2a 2f 0d 0a 7d 20 2f 2a 20 73 74 61 74 69 63 20 */..} /* static 3580: 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 if (_WIN32_WINNT 3590: 20 3e 3d 20 30 78 36 30 30 29 20 2a 2f 0d 0a >= 0x600) */..