Artifact 893821ed8f5fba3481526724556af3b4bb8f80b8:
- File
src/win32/lmsvc.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 20 6c 6d 73 76 lmsv
0070: 63 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 c.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 54 72 61 6e 73 6c 61 Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers
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: 6c 6d 73 76 63 3b 0d 0a 0d 0a 2f 2f 20 46 49 58 lmsvc;....// FIX
02c0: 4d 45 3a 20 49 73 20 74 68 69 73 20 66 69 6c 65 ME: Is this file
02d0: 20 64 65 70 72 65 63 61 74 65 64 3f 20 41 6c 6c deprecated? All
02e0: 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e of the function
02f0: 73 20 61 72 65 20 6f 6e 6c 79 20 66 6f 72 20 57 s are only for W
0300: 69 6e 31 36 2e 0d 0a 2f 2a 2a 0d 0a 20 20 43 68 in16.../**.. Ch
0310: 61 6e 67 65 73 20 72 65 6c 61 74 69 76 65 20 74 anges relative t
0320: 6f 20 4d 69 6e 47 57 3a 0d 0a 20 20 6c 6d 73 6e o MinGW:.. lmsn
0330: 61 6d 65 20 69 73 20 6e 6f 74 20 69 6d 70 6f 72 ame is not impor
0340: 74 65 64 20 70 75 62 6c 69 63 6c 79 20 28 69 6e ted publicly (in
0350: 73 74 65 61 64 2c 20 77 69 6e 33 32 2e 6c 6d 20 stead, win32.lm
0360: 69 6d 70 6f 72 74 73 20 69 74 20 64 69 72 65 63 imports it direc
0370: 74 6c 79 29 2e 0d 0a 2a 2f 0d 0a 2f 2f 20 54 4f tly)...*/..// TO
0380: 44 4f 3a 20 35 20 6d 61 63 72 6f 73 0d 0a 0d 0a DO: 5 macros....
0390: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 private import w
03a0: 69 6e 33 32 2e 6c 6d 63 6f 6e 73 2c 20 77 69 6e in32.lmcons, win
03b0: 33 32 2e 6c 6d 73 6e 61 6d 65 2c 20 77 69 6e 33 32.lmsname, win3
03c0: 32 2e 77 69 6e 64 65 66 3b 0d 0a 0d 0a 63 6f 6e 2.windef;....con
03d0: 73 74 20 54 43 48 41 52 5b 5d 20 53 45 52 56 49 st TCHAR[] SERVI
03e0: 43 45 5f 44 4f 53 5f 45 4e 43 52 59 50 54 49 4f CE_DOS_ENCRYPTIO
03f0: 4e 20 3d 20 22 45 4e 43 52 59 50 54 22 3b 0d 0a N = "ENCRYPT";..
0400: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0410: 55 4e 49 4e 53 54 41 4c 4c 45 44 3d 30 3b 0d 0a UNINSTALLED=0;..
0420: 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 49 4e const SERVICE_IN
0430: 53 54 41 4c 4c 5f 50 45 4e 44 49 4e 47 3d 31 3b STALL_PENDING=1;
0440: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0450: 55 4e 49 4e 53 54 41 4c 4c 5f 50 45 4e 44 49 4e UNINSTALL_PENDIN
0460: 47 3d 32 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 G=2;..const SERV
0470: 49 43 45 5f 49 4e 53 54 41 4c 4c 45 44 3d 33 3b ICE_INSTALLED=3;
0480: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0490: 49 4e 53 54 41 4c 4c 5f 53 54 41 54 45 3d 33 3b INSTALL_STATE=3;
04a0: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
04b0: 50 41 55 53 45 5f 53 54 41 54 45 3d 31 38 3b 0d PAUSE_STATE=18;.
04c0: 0a 63 6f 6e 73 74 20 4c 4d 32 30 5f 53 45 52 56 .const LM20_SERV
04d0: 49 43 45 5f 41 43 54 49 56 45 3d 30 3b 0d 0a 63 ICE_ACTIVE=0;..c
04e0: 6f 6e 73 74 20 4c 4d 32 30 5f 53 45 52 56 49 43 onst LM20_SERVIC
04f0: 45 5f 43 4f 4e 54 49 4e 55 45 5f 50 45 4e 44 49 E_CONTINUE_PENDI
0500: 4e 47 3d 34 3b 0d 0a 63 6f 6e 73 74 20 4c 4d 32 NG=4;..const LM2
0510: 30 5f 53 45 52 56 49 43 45 5f 50 41 55 53 45 5f 0_SERVICE_PAUSE_
0520: 50 45 4e 44 49 4e 47 3d 38 3b 0d 0a 63 6f 6e 73 PENDING=8;..cons
0530: 74 20 4c 4d 32 30 5f 53 45 52 56 49 43 45 5f 50 t LM20_SERVICE_P
0540: 41 55 53 45 44 3d 31 38 3b 0d 0a 63 6f 6e 73 74 AUSED=18;..const
0550: 20 53 45 52 56 49 43 45 5f 4e 4f 54 5f 55 4e 49 SERVICE_NOT_UNI
0560: 4e 53 54 41 4c 4c 41 42 4c 45 3d 30 3b 0d 0a 63 NSTALLABLE=0;..c
0570: 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 4e 49 onst SERVICE_UNI
0580: 4e 53 54 41 4c 4c 41 42 4c 45 3d 31 36 3b 0d 0a NSTALLABLE=16;..
0590: 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 4e 4f const SERVICE_NO
05a0: 54 5f 50 41 55 53 41 42 4c 45 3d 30 3b 0d 0a 63 T_PAUSABLE=0;..c
05b0: 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 50 41 55 onst SERVICE_PAU
05c0: 53 41 42 4c 45 3d 33 32 3b 0d 0a 63 6f 6e 73 74 SABLE=32;..const
05d0: 20 53 45 52 56 49 43 45 5f 52 45 44 49 52 5f 50 SERVICE_REDIR_P
05e0: 41 55 53 45 44 3d 30 78 37 30 30 3b 0d 0a 63 6f AUSED=0x700;..co
05f0: 6e 73 74 20 53 45 52 56 49 43 45 5f 52 45 44 49 nst SERVICE_REDI
0600: 52 5f 44 49 53 4b 5f 50 41 55 53 45 44 3d 32 35 R_DISK_PAUSED=25
0610: 36 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 6;..const SERVIC
0620: 45 5f 52 45 44 49 52 5f 50 52 49 4e 54 5f 50 41 E_REDIR_PRINT_PA
0630: 55 53 45 44 3d 35 31 32 3b 0d 0a 63 6f 6e 73 74 USED=512;..const
0640: 20 53 45 52 56 49 43 45 5f 52 45 44 49 52 5f 43 SERVICE_REDIR_C
0650: 4f 4d 4d 5f 50 41 55 53 45 44 3d 31 30 32 34 3b OMM_PAUSED=1024;
0660: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0670: 43 54 52 4c 5f 49 4e 54 45 52 52 4f 47 41 54 45 CTRL_INTERROGATE
0680: 3d 30 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 =0;..const SERVI
0690: 43 45 5f 43 54 52 4c 5f 50 41 55 53 45 3d 31 3b CE_CTRL_PAUSE=1;
06a0: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
06b0: 43 54 52 4c 5f 43 4f 4e 54 49 4e 55 45 3d 32 3b CTRL_CONTINUE=2;
06c0: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
06d0: 43 54 52 4c 5f 55 4e 49 4e 53 54 41 4c 4c 3d 33 CTRL_UNINSTALL=3
06e0: 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 ;..const SERVICE
06f0: 5f 43 54 52 4c 5f 52 45 44 49 52 5f 44 49 53 4b _CTRL_REDIR_DISK
0700: 3d 31 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 =1;..const SERVI
0710: 43 45 5f 43 54 52 4c 5f 52 45 44 49 52 5f 50 52 CE_CTRL_REDIR_PR
0720: 49 4e 54 3d 32 3b 0d 0a 63 6f 6e 73 74 20 53 45 INT=2;..const SE
0730: 52 56 49 43 45 5f 43 54 52 4c 5f 52 45 44 49 52 RVICE_CTRL_REDIR
0740: 5f 43 4f 4d 4d 3d 34 3b 0d 0a 63 6f 6e 73 74 20 _COMM=4;..const
0750: 53 45 52 56 49 43 45 5f 49 50 5f 4e 4f 5f 48 49 SERVICE_IP_NO_HI
0760: 4e 54 3d 30 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 NT=0;..const SER
0770: 56 49 43 45 5f 43 43 50 5f 4e 4f 5f 48 49 4e 54 VICE_CCP_NO_HINT
0780: 3d 30 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 =0;..const SERVI
0790: 43 45 5f 49 50 5f 51 55 45 52 59 5f 48 49 4e 54 CE_IP_QUERY_HINT
07a0: 3d 30 78 31 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 =0x10000;..const
07b0: 20 53 45 52 56 49 43 45 5f 43 43 50 5f 51 55 45 SERVICE_CCP_QUE
07c0: 52 59 5f 48 49 4e 54 3d 30 78 31 30 30 30 30 3b RY_HINT=0x10000;
07d0: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
07e0: 49 50 5f 43 48 4b 50 54 5f 4e 55 4d 3d 32 35 35 IP_CHKPT_NUM=255
07f0: 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 ;..const SERVICE
0800: 5f 43 43 50 5f 43 48 4b 50 54 5f 4e 55 4d 3d 32 _CCP_CHKPT_NUM=2
0810: 35 35 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 55;..const SERVI
0820: 43 45 5f 49 50 5f 57 41 49 54 5f 54 49 4d 45 3d CE_IP_WAIT_TIME=
0830: 30 78 46 46 30 30 3b 0d 0a 63 6f 6e 73 74 20 53 0xFF00;..const S
0840: 45 52 56 49 43 45 5f 43 43 50 5f 57 41 49 54 5f ERVICE_CCP_WAIT_
0850: 54 49 4d 45 3d 30 78 46 46 30 30 3b 0d 0a 63 6f TIME=0xFF00;..co
0860: 6e 73 74 20 53 45 52 56 49 43 45 5f 49 50 5f 57 nst SERVICE_IP_W
0870: 41 49 54 54 49 4d 45 5f 53 48 49 46 54 3d 38 3b AITTIME_SHIFT=8;
0880: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0890: 4e 54 49 50 5f 57 41 49 54 54 49 4d 45 5f 53 48 NTIP_WAITTIME_SH
08a0: 49 46 54 3d 31 32 3b 0d 0a 63 6f 6e 73 74 20 55 IFT=12;..const U
08b0: 50 50 45 52 5f 48 49 4e 54 5f 4d 41 53 4b 3d 30 PPER_HINT_MASK=0
08c0: 78 46 46 30 30 3b 0d 0a 63 6f 6e 73 74 20 4c 4f xFF00;..const LO
08d0: 57 45 52 5f 48 49 4e 54 5f 4d 41 53 4b 3d 32 35 WER_HINT_MASK=25
08e0: 35 3b 0d 0a 63 6f 6e 73 74 20 55 50 50 45 52 5f 5;..const UPPER_
08f0: 47 45 54 5f 48 49 4e 54 5f 4d 41 53 4b 3d 30 78 GET_HINT_MASK=0x
0900: 46 46 30 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 FF00000;..const
0910: 4c 4f 57 45 52 5f 47 45 54 5f 48 49 4e 54 5f 4d LOWER_GET_HINT_M
0920: 41 53 4b 3d 30 78 46 46 30 30 3b 0d 0a 63 6f 6e ASK=0xFF00;..con
0930: 73 74 20 53 45 52 56 49 43 45 5f 4e 54 5f 4d 41 st SERVICE_NT_MA
0940: 58 54 49 4d 45 3d 30 78 46 46 46 46 3b 0d 0a 63 XTIME=0xFFFF;..c
0950: 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 52 45 53 onst SERVICE_RES
0960: 52 56 5f 4d 41 53 4b 3d 30 78 31 46 46 46 46 3b RV_MASK=0x1FFFF;
0970: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0980: 4d 41 58 54 49 4d 45 3d 32 35 35 3b 0d 0a 63 6f MAXTIME=255;..co
0990: 6e 73 74 20 53 45 52 56 49 43 45 5f 42 41 53 45 nst SERVICE_BASE
09a0: 3d 33 30 35 30 3b 0d 0a 63 6f 6e 73 74 20 53 45 =3050;..const SE
09b0: 52 56 49 43 45 5f 55 49 43 5f 4e 4f 52 4d 41 4c RVICE_UIC_NORMAL
09c0: 3d 30 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 53 45 52 =0;....const SER
09d0: 56 49 43 45 5f 55 49 43 5f 42 41 44 50 41 52 4d VICE_UIC_BADPARM
09e0: 56 41 4c 20 3d 20 53 45 52 56 49 43 45 5f 42 41 VAL = SERVICE_BA
09f0: 53 45 2b 31 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 SE+1;..const SER
0a00: 56 49 43 45 5f 55 49 43 5f 4d 49 53 53 50 41 52 VICE_UIC_MISSPAR
0a10: 4d 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 M = SERVICE_BASE
0a20: 2b 32 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 +2;..const SERVI
0a30: 43 45 5f 55 49 43 5f 55 4e 4b 50 41 52 4d 20 3d CE_UIC_UNKPARM =
0a40: 20 53 45 52 56 49 43 45 5f 42 41 53 45 2b 33 3b SERVICE_BASE+3;
0a50: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0a60: 55 49 43 5f 52 45 53 4f 55 52 43 45 20 3d 20 53 UIC_RESOURCE = S
0a70: 45 52 56 49 43 45 5f 42 41 53 45 2b 34 3b 0d 0a ERVICE_BASE+4;..
0a80: 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 49 const SERVICE_UI
0a90: 43 5f 43 4f 4e 46 49 47 20 3d 20 53 45 52 56 49 C_CONFIG = SERVI
0aa0: 43 45 5f 42 41 53 45 2b 35 3b 0d 0a 63 6f 6e 73 CE_BASE+5;..cons
0ab0: 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 53 59 t SERVICE_UIC_SY
0ac0: 53 54 45 4d 20 3d 20 53 45 52 56 49 43 45 5f 42 STEM = SERVICE_B
0ad0: 41 53 45 2b 36 3b 0d 0a 63 6f 6e 73 74 20 53 45 ASE+6;..const SE
0ae0: 52 56 49 43 45 5f 55 49 43 5f 49 4e 54 45 52 4e RVICE_UIC_INTERN
0af0: 41 4c 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 AL = SERVICE_BAS
0b00: 45 2b 37 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 E+7;..const SERV
0b10: 49 43 45 5f 55 49 43 5f 41 4d 42 49 47 50 41 52 ICE_UIC_AMBIGPAR
0b20: 4d 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 M = SERVICE_BASE
0b30: 2b 38 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 +8;..const SERVI
0b40: 43 45 5f 55 49 43 5f 44 55 50 50 41 52 4d 20 3d CE_UIC_DUPPARM =
0b50: 20 53 45 52 56 49 43 45 5f 42 41 53 45 2b 39 3b SERVICE_BASE+9;
0b60: 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f ..const SERVICE_
0b70: 55 49 43 5f 4b 49 4c 4c 20 3d 20 53 45 52 56 49 UIC_KILL = SERVI
0b80: 43 45 5f 42 41 53 45 2b 31 30 3b 0d 0a 63 6f 6e CE_BASE+10;..con
0b90: 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 45 st SERVICE_UIC_E
0ba0: 58 45 43 20 3d 20 53 45 52 56 49 43 45 5f 42 41 XEC = SERVICE_BA
0bb0: 53 45 2b 31 31 3b 0d 0a 63 6f 6e 73 74 20 53 45 SE+11;..const SE
0bc0: 52 56 49 43 45 5f 55 49 43 5f 53 55 42 53 45 52 RVICE_UIC_SUBSER
0bd0: 56 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 V = SERVICE_BASE
0be0: 2b 31 32 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 +12;..const SERV
0bf0: 49 43 45 5f 55 49 43 5f 43 4f 4e 46 4c 50 41 52 ICE_UIC_CONFLPAR
0c00: 4d 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 M = SERVICE_BASE
0c10: 2b 31 33 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 +13;..const SERV
0c20: 49 43 45 5f 55 49 43 5f 46 49 4c 45 20 3d 20 53 ICE_UIC_FILE = S
0c30: 45 52 56 49 43 45 5f 42 41 53 45 2b 31 34 3b 0d ERVICE_BASE+14;.
0c40: 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 .const SERVICE_U
0c50: 49 43 5f 4d 5f 4e 55 4c 4c 3d 30 3b 0d 0a 63 6f IC_M_NULL=0;..co
0c60: 6e 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f nst SERVICE_UIC_
0c70: 4d 5f 4d 45 4d 4f 52 59 20 3d 20 53 45 52 56 49 M_MEMORY = SERVI
0c80: 43 45 5f 42 41 53 45 2b 32 30 3b 0d 0a 63 6f 6e CE_BASE+20;..con
0c90: 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d st SERVICE_UIC_M
0ca0: 5f 44 49 53 4b 20 3d 20 53 45 52 56 49 43 45 5f _DISK = SERVICE_
0cb0: 42 41 53 45 2b 32 31 3b 0d 0a 63 6f 6e 73 74 20 BASE+21;..const
0cc0: 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 54 48 SERVICE_UIC_M_TH
0cd0: 52 45 41 44 53 20 3d 20 53 45 52 56 49 43 45 5f READS = SERVICE_
0ce0: 42 41 53 45 2b 32 32 3b 0d 0a 63 6f 6e 73 74 20 BASE+22;..const
0cf0: 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 50 52 SERVICE_UIC_M_PR
0d00: 4f 43 45 53 53 45 53 20 3d 20 53 45 52 56 49 43 OCESSES = SERVIC
0d10: 45 5f 42 41 53 45 2b 32 33 3b 0d 0a 63 6f 6e 73 E_BASE+23;..cons
0d20: 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f t SERVICE_UIC_M_
0d30: 53 45 43 55 52 49 54 59 20 3d 20 53 45 52 56 49 SECURITY = SERVI
0d40: 43 45 5f 42 41 53 45 2b 32 34 3b 0d 0a 63 6f 6e CE_BASE+24;..con
0d50: 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d st SERVICE_UIC_M
0d60: 5f 4c 41 4e 52 4f 4f 54 20 3d 20 53 45 52 56 49 _LANROOT = SERVI
0d70: 43 45 5f 42 41 53 45 2b 32 35 3b 0d 0a 63 6f 6e CE_BASE+25;..con
0d80: 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d st SERVICE_UIC_M
0d90: 5f 52 45 44 49 52 20 3d 20 53 45 52 56 49 43 45 _REDIR = SERVICE
0da0: 5f 42 41 53 45 2b 32 36 3b 0d 0a 63 6f 6e 73 74 _BASE+26;..const
0db0: 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 53 SERVICE_UIC_M_S
0dc0: 45 52 56 45 52 20 3d 20 53 45 52 56 49 43 45 5f ERVER = SERVICE_
0dd0: 42 41 53 45 2b 32 37 3b 0d 0a 63 6f 6e 73 74 20 BASE+27;..const
0de0: 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 53 45 SERVICE_UIC_M_SE
0df0: 43 5f 46 49 4c 45 5f 45 52 52 20 3d 20 53 45 52 C_FILE_ERR = SER
0e00: 56 49 43 45 5f 42 41 53 45 2b 32 38 3b 0d 0a 63 VICE_BASE+28;..c
0e10: 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 onst SERVICE_UIC
0e20: 5f 4d 5f 46 49 4c 45 53 20 3d 20 53 45 52 56 49 _M_FILES = SERVI
0e30: 43 45 5f 42 41 53 45 2b 32 39 3b 0d 0a 63 6f 6e CE_BASE+29;..con
0e40: 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d st SERVICE_UIC_M
0e50: 5f 4c 4f 47 53 20 3d 20 53 45 52 56 49 43 45 5f _LOGS = SERVICE_
0e60: 42 41 53 45 2b 33 30 3b 0d 0a 63 6f 6e 73 74 20 BASE+30;..const
0e70: 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 4c 41 SERVICE_UIC_M_LA
0e80: 4e 47 52 4f 55 50 20 3d 20 53 45 52 56 49 43 45 NGROUP = SERVICE
0e90: 5f 42 41 53 45 2b 33 31 3b 0d 0a 63 6f 6e 73 74 _BASE+31;..const
0ea0: 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 4d SERVICE_UIC_M_M
0eb0: 53 47 4e 41 4d 45 20 3d 20 53 45 52 56 49 43 45 SGNAME = SERVICE
0ec0: 5f 42 41 53 45 2b 33 32 3b 0d 0a 63 6f 6e 73 74 _BASE+32;..const
0ed0: 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 41 SERVICE_UIC_M_A
0ee0: 4e 4e 4f 55 4e 43 45 20 3d 20 53 45 52 56 49 43 NNOUNCE = SERVIC
0ef0: 45 5f 42 41 53 45 2b 33 33 3b 0d 0a 63 6f 6e 73 E_BASE+33;..cons
0f00: 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f t SERVICE_UIC_M_
0f10: 55 41 53 20 3d 20 53 45 52 56 49 43 45 5f 42 41 UAS = SERVICE_BA
0f20: 53 45 2b 33 34 3b 0d 0a 63 6f 6e 73 74 20 53 45 SE+34;..const SE
0f30: 52 56 49 43 45 5f 55 49 43 5f 4d 5f 53 45 52 56 RVICE_UIC_M_SERV
0f40: 45 52 5f 53 45 43 5f 45 52 52 20 3d 20 53 45 52 ER_SEC_ERR = SER
0f50: 56 49 43 45 5f 42 41 53 45 2b 33 35 3b 0d 0a 63 VICE_BASE+35;..c
0f60: 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 onst SERVICE_UIC
0f70: 5f 4d 5f 57 4b 53 54 41 20 3d 20 53 45 52 56 49 _M_WKSTA = SERVI
0f80: 43 45 5f 42 41 53 45 2b 33 37 3b 0d 0a 63 6f 6e CE_BASE+37;..con
0f90: 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d st SERVICE_UIC_M
0fa0: 5f 45 52 52 4c 4f 47 20 3d 20 53 45 52 56 49 43 _ERRLOG = SERVIC
0fb0: 45 5f 42 41 53 45 2b 33 38 3b 0d 0a 63 6f 6e 73 E_BASE+38;..cons
0fc0: 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f t SERVICE_UIC_M_
0fd0: 46 49 4c 45 5f 55 57 20 3d 20 53 45 52 56 49 43 FILE_UW = SERVIC
0fe0: 45 5f 42 41 53 45 2b 33 39 3b 0d 0a 63 6f 6e 73 E_BASE+39;..cons
0ff0: 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f t SERVICE_UIC_M_
1000: 41 44 44 50 41 4b 20 3d 20 53 45 52 56 49 43 45 ADDPAK = SERVICE
1010: 5f 42 41 53 45 2b 34 30 3b 0d 0a 63 6f 6e 73 74 _BASE+40;..const
1020: 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 4c SERVICE_UIC_M_L
1030: 41 5a 59 20 3d 20 53 45 52 56 49 43 45 5f 42 41 AZY = SERVICE_BA
1040: 53 45 2b 34 31 3b 0d 0a 63 6f 6e 73 74 20 53 45 SE+41;..const SE
1050: 52 56 49 43 45 5f 55 49 43 5f 4d 5f 55 41 53 5f RVICE_UIC_M_UAS_
1060: 4d 41 43 48 49 4e 45 5f 41 43 43 54 20 3d 20 53 MACHINE_ACCT = S
1070: 45 52 56 49 43 45 5f 42 41 53 45 2b 34 32 3b 0d ERVICE_BASE+42;.
1080: 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 .const SERVICE_U
1090: 49 43 5f 4d 5f 55 41 53 5f 53 45 52 56 45 52 53 IC_M_UAS_SERVERS
10a0: 5f 4e 4d 45 4d 42 20 3d 20 53 45 52 56 49 43 45 _NMEMB = SERVICE
10b0: 5f 42 41 53 45 2b 34 33 3b 0d 0a 63 6f 6e 73 74 _BASE+43;..const
10c0: 20 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 55 SERVICE_UIC_M_U
10d0: 41 53 5f 53 45 52 56 45 52 53 5f 4e 4f 47 52 50 AS_SERVERS_NOGRP
10e0: 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 2b = SERVICE_BASE+
10f0: 34 34 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 44;..const SERVI
1100: 43 45 5f 55 49 43 5f 4d 5f 55 41 53 5f 49 4e 56 CE_UIC_M_UAS_INV
1110: 41 4c 49 44 5f 52 4f 4c 45 20 3d 20 53 45 52 56 ALID_ROLE = SERV
1120: 49 43 45 5f 42 41 53 45 2b 34 35 3b 0d 0a 63 6f ICE_BASE+45;..co
1130: 6e 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 5f nst SERVICE_UIC_
1140: 4d 5f 4e 45 54 4c 4f 47 4f 4e 5f 4e 4f 5f 44 43 M_NETLOGON_NO_DC
1150: 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 2b = SERVICE_BASE+
1160: 34 36 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 46;..const SERVI
1170: 43 45 5f 55 49 43 5f 4d 5f 4e 45 54 4c 4f 47 4f CE_UIC_M_NETLOGO
1180: 4e 5f 44 43 5f 43 46 4c 43 54 20 3d 20 53 45 52 N_DC_CFLCT = SER
1190: 56 49 43 45 5f 42 41 53 45 2b 34 37 3b 0d 0a 63 VICE_BASE+47;..c
11a0: 6f 6e 73 74 20 53 45 52 56 49 43 45 5f 55 49 43 onst SERVICE_UIC
11b0: 5f 4d 5f 4e 45 54 4c 4f 47 4f 4e 5f 41 55 54 48 _M_NETLOGON_AUTH
11c0: 20 3d 20 53 45 52 56 49 43 45 5f 42 41 53 45 2b = SERVICE_BASE+
11d0: 34 38 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 48;..const SERVI
11e0: 43 45 5f 55 49 43 5f 4d 5f 55 41 53 5f 50 52 4f CE_UIC_M_UAS_PRO
11f0: 4c 4f 47 20 3d 20 53 45 52 56 49 43 45 5f 42 41 LOG = SERVICE_BA
1200: 53 45 2b 34 39 3b 0d 0a 63 6f 6e 73 74 20 53 45 SE+49;..const SE
1210: 52 56 49 43 45 32 5f 42 41 53 45 3d 35 36 30 30 RVICE2_BASE=5600
1220: 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 ;..const SERVICE
1230: 5f 55 49 43 5f 4d 5f 4e 45 54 4c 4f 47 4f 4e 5f _UIC_M_NETLOGON_
1240: 4d 50 41 54 48 20 3d 20 53 45 52 56 49 43 45 32 MPATH = SERVICE2
1250: 5f 42 41 53 45 2b 30 3b 0d 0a 63 6f 6e 73 74 20 _BASE+0;..const
1260: 53 45 52 56 49 43 45 5f 55 49 43 5f 4d 5f 4c 53 SERVICE_UIC_M_LS
1270: 41 5f 4d 41 43 48 49 4e 45 5f 41 43 43 54 20 3d A_MACHINE_ACCT =
1280: 20 53 45 52 56 49 43 45 32 5f 42 41 53 45 2b 31 SERVICE2_BASE+1
1290: 3b 0d 0a 63 6f 6e 73 74 20 53 45 52 56 49 43 45 ;..const SERVICE
12a0: 5f 55 49 43 5f 4d 5f 44 41 54 41 42 41 53 45 5f _UIC_M_DATABASE_
12b0: 45 52 52 4f 52 20 3d 20 53 45 52 56 49 43 45 32 ERROR = SERVICE2
12c0: 5f 42 41 53 45 2b 32 3b 0d 0a 0d 0a 73 74 72 75 _BASE+2;....stru
12d0: 63 74 20 53 45 52 56 49 43 45 5f 49 4e 46 4f 5f ct SERVICE_INFO_
12e0: 30 20 7b 0d 0a 09 4c 50 57 53 54 52 20 73 76 63 0 {...LPWSTR svc
12f0: 69 30 5f 6e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 i0_name;..}..ali
1300: 61 73 20 53 45 52 56 49 43 45 5f 49 4e 46 4f 5f as SERVICE_INFO_
1310: 30 2a 20 50 53 45 52 56 49 43 45 5f 49 4e 46 4f 0* PSERVICE_INFO
1320: 5f 30 2c 20 4c 50 53 45 52 56 49 43 45 5f 49 4e _0, LPSERVICE_IN
1330: 46 4f 5f 30 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 FO_0;....struct
1340: 53 45 52 56 49 43 45 5f 49 4e 46 4f 5f 31 20 7b SERVICE_INFO_1 {
1350: 0d 0a 09 4c 50 57 53 54 52 20 73 76 63 69 31 5f ...LPWSTR svci1_
1360: 6e 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 73 76 name;...DWORD sv
1370: 63 69 31 5f 73 74 61 74 75 73 3b 0d 0a 09 44 57 ci1_status;...DW
1380: 4f 52 44 20 73 76 63 69 31 5f 63 6f 64 65 3b 0d ORD svci1_code;.
1390: 0a 09 44 57 4f 52 44 20 73 76 63 69 31 5f 70 69 ..DWORD svci1_pi
13a0: 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 45 52 d;..}..alias SER
13b0: 56 49 43 45 5f 49 4e 46 4f 5f 31 2a 20 50 53 45 VICE_INFO_1* PSE
13c0: 52 56 49 43 45 5f 49 4e 46 4f 5f 31 2c 20 4c 50 RVICE_INFO_1, LP
13d0: 53 45 52 56 49 43 45 5f 49 4e 46 4f 5f 31 3b 0d SERVICE_INFO_1;.
13e0: 0a 0d 0a 73 74 72 75 63 74 20 53 45 52 56 49 43 ...struct SERVIC
13f0: 45 5f 49 4e 46 4f 5f 32 20 7b 0d 0a 09 4c 50 57 E_INFO_2 {...LPW
1400: 53 54 52 20 73 76 63 69 32 5f 6e 61 6d 65 3b 0d STR svci2_name;.
1410: 0a 09 44 57 4f 52 44 20 73 76 63 69 32 5f 73 74 ..DWORD svci2_st
1420: 61 74 75 73 3b 0d 0a 09 44 57 4f 52 44 20 73 76 atus;...DWORD sv
1430: 63 69 32 5f 63 6f 64 65 3b 0d 0a 09 44 57 4f 52 ci2_code;...DWOR
1440: 44 20 73 76 63 69 32 5f 70 69 64 3b 0d 0a 09 4c D svci2_pid;...L
1450: 50 57 53 54 52 20 73 76 63 69 32 5f 74 65 78 74 PWSTR svci2_text
1460: 3b 0d 0a 09 44 57 4f 52 44 20 73 76 63 69 32 5f ;...DWORD svci2_
1470: 73 70 65 63 69 66 69 63 5f 65 72 72 6f 72 3b 0d specific_error;.
1480: 0a 09 4c 50 57 53 54 52 20 73 76 63 69 32 5f 64 ..LPWSTR svci2_d
1490: 69 73 70 6c 61 79 5f 6e 61 6d 65 3b 0d 0a 7d 0d isplay_name;..}.
14a0: 0a 61 6c 69 61 73 20 53 45 52 56 49 43 45 5f 49 .alias SERVICE_I
14b0: 4e 46 4f 5f 32 2a 20 50 53 45 52 56 49 43 45 5f NFO_2* PSERVICE_
14c0: 49 4e 46 4f 5f 32 2c 20 4c 50 53 45 52 56 49 43 INFO_2, LPSERVIC
14d0: 45 5f 49 4e 46 4f 5f 32 3b 0d 0a 0d 0a 65 78 74 E_INFO_2;....ext
14e0: 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d ern (Windows) {.
14f0: 0a 09 64 65 70 72 65 63 61 74 65 64 20 7b 0d 0a ..deprecated {..
1500: 09 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 ..NET_API_STATUS
1510: 20 4e 65 74 53 65 72 76 69 63 65 43 6f 6e 74 72 NetServiceContr
1520: 6f 6c 28 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 ol(LPCWSTR, LPCW
1530: 53 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 STR, DWORD, DWOR
1540: 44 2c 0d 0a 09 09 20 20 50 42 59 54 45 2a 29 3b D,.... PBYTE*);
1550: 0d 0a 09 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 ....NET_API_STAT
1560: 55 53 20 4e 65 74 53 65 72 76 69 63 65 45 6e 75 US NetServiceEnu
1570: 6d 28 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 m(LPCWSTR, DWORD
1580: 2c 20 50 42 59 54 45 2a 2c 20 44 57 4f 52 44 2c , PBYTE*, DWORD,
1590: 20 50 44 57 4f 52 44 2c 0d 0a 09 09 20 20 50 44 PDWORD,.... PD
15a0: 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a WORD, PDWORD);..
15b0: 09 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 ..NET_API_STATUS
15c0: 20 4e 65 74 53 65 72 76 69 63 65 47 65 74 49 6e NetServiceGetIn
15d0: 66 6f 28 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 fo(LPCWSTR, LPCW
15e0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 42 59 54 STR, DWORD, PBYT
15f0: 45 2a 29 3b 0d 0a 09 09 4e 45 54 5f 41 50 49 5f E*);....NET_API_
1600: 53 54 41 54 55 53 20 4e 65 74 53 65 72 76 69 63 STATUS NetServic
1610: 65 49 6e 73 74 61 6c 6c 28 4c 50 43 57 53 54 52 eInstall(LPCWSTR
1620: 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 , LPCWSTR, DWORD
1630: 2c 20 4c 50 43 57 53 54 52 2a 2c 0d 0a 09 09 20 , LPCWSTR*,....
1640: 20 50 42 59 54 45 2a 29 3b 0d 0a 09 7d 0d 0a 7d PBYTE*);...}..}
1650: 0d 0a 2f 2f 4d 41 43 52 4f 20 23 64 65 66 69 6e ..//MACRO #defin
1660: 65 20 53 45 52 56 49 43 45 5f 49 50 5f 43 4f 44 e SERVICE_IP_COD
1670: 45 28 74 2c 20 6e 29 20 28 28 6c 6f 6e 67 29 53 E(t, n) ((long)S
1680: 45 52 56 49 43 45 5f 49 50 5f 51 55 45 52 59 5f ERVICE_IP_QUERY_
1690: 48 49 4e 54 7c 28 6c 6f 6e 67 29 28 6e 7c 28 74 HINT|(long)(n|(t
16a0: 3c 3c 53 45 52 56 49 43 45 5f 49 50 5f 57 41 49 <<SERVICE_IP_WAI
16b0: 54 54 49 4d 45 5f 53 48 49 46 54 29 29 29 0d 0a TTIME_SHIFT)))..
16c0: 2f 2f 4d 41 43 52 4f 20 23 64 65 66 69 6e 65 20 //MACRO #define
16d0: 53 45 52 56 49 43 45 5f 43 43 50 5f 43 4f 44 45 SERVICE_CCP_CODE
16e0: 28 74 2c 20 6e 29 20 28 28 6c 6f 6e 67 29 53 45 (t, n) ((long)SE
16f0: 52 56 49 43 45 5f 43 43 50 5f 51 55 45 52 59 5f RVICE_CCP_QUERY_
1700: 48 49 4e 54 7c 28 6c 6f 6e 67 29 28 6e 7c 28 74 HINT|(long)(n|(t
1710: 3c 3c 53 45 52 56 49 43 45 5f 49 50 5f 57 41 49 <<SERVICE_IP_WAI
1720: 54 54 49 4d 45 5f 53 48 49 46 54 29 29 29 0d 0a TTIME_SHIFT)))..
1730: 2f 2f 4d 41 43 52 4f 20 23 64 65 66 69 6e 65 20 //MACRO #define
1740: 53 45 52 56 49 43 45 5f 55 49 43 5f 43 4f 44 45 SERVICE_UIC_CODE
1750: 28 63 2c 20 6d 29 20 28 28 6c 6f 6e 67 29 28 28 (c, m) ((long)((
1760: 28 6c 6f 6e 67 29 63 3c 3c 31 36 29 7c 28 6c 6f (long)c<<16)|(lo
1770: 6e 67 29 28 55 53 48 4f 52 54 29 6d 29 29 0d 0a ng)(USHORT)m))..
1780: 2f 2f 4d 41 43 52 4f 20 23 64 65 66 69 6e 65 20 //MACRO #define
1790: 53 45 52 56 49 43 45 5f 4e 54 5f 43 43 50 5f 43 SERVICE_NT_CCP_C
17a0: 4f 44 45 28 74 2c 20 6e 29 20 28 28 28 6c 6f 6e ODE(t, n) (((lon
17b0: 67 29 53 45 52 56 49 43 45 5f 43 43 50 5f 51 55 g)SERVICE_CCP_QU
17c0: 45 52 59 5f 48 49 4e 54 29 7c 28 28 6c 6f 6e 67 ERY_HINT)|((long
17d0: 29 28 6e 29 29 7c 28 28 28 74 29 26 4c 4f 57 45 )(n))|(((t)&LOWE
17e0: 52 5f 48 49 4e 54 5f 4d 41 53 4b 29 3c 3c 53 45 R_HINT_MASK)<<SE
17f0: 52 56 49 43 45 5f 49 50 5f 57 41 49 54 54 49 4d RVICE_IP_WAITTIM
1800: 45 5f 53 48 49 46 54 29 7c 28 28 28 74 29 26 55 E_SHIFT)|(((t)&U
1810: 50 50 45 52 5f 48 49 4e 54 5f 4d 41 53 4b 29 3c PPER_HINT_MASK)<
1820: 3c 53 45 52 56 49 43 45 5f 4e 54 49 50 5f 57 41 <SERVICE_NTIP_WA
1830: 49 54 54 49 4d 45 5f 53 48 49 46 54 29 29 0d 0a ITTIME_SHIFT))..
1840: 2f 2f 4d 41 43 52 4f 20 23 64 65 66 69 6e 65 20 //MACRO #define
1850: 53 45 52 56 49 43 45 5f 4e 54 5f 57 41 49 54 5f SERVICE_NT_WAIT_
1860: 47 45 54 28 63 29 20 28 28 28 28 63 29 26 55 50 GET(c) ((((c)&UP
1870: 50 45 52 5f 47 45 54 5f 48 49 4e 54 5f 4d 41 53 PER_GET_HINT_MAS
1880: 4b 29 3e 3e 53 45 52 56 49 43 45 5f 4e 54 49 50 K)>>SERVICE_NTIP
1890: 5f 57 41 49 54 54 49 4d 45 5f 53 48 49 46 54 29 _WAITTIME_SHIFT)
18a0: 7c 28 28 28 63 29 26 4c 4f 57 45 52 5f 47 45 54 |(((c)&LOWER_GET
18b0: 5f 48 49 4e 54 5f 4d 41 53 4b 29 3e 3e 53 45 52 _HINT_MASK)>>SER
18c0: 56 49 43 45 5f 49 50 5f 57 41 49 54 54 49 4d 45 VICE_IP_WAITTIME
18d0: 5f 53 48 49 46 54 29 29 0d 0a _SHIFT))..