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