Hex Artifact Content

Not logged in

Artifact fa6f54ec493591ee9faf1e9ce94639e4d73dbbe4:


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