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