1 /***********************************************************************\ 2 * lmsvc.d * 3 * * 4 * Windows API header module * 5 * * 6 * Translated from MinGW Windows headers * 7 * * 8 * Placed into public domain * 9 \***********************************************************************/ 10 module win32.lmsvc; 11 version(Windows): 12 13 // FIXME: Is this file deprecated? All of the functions are only for Win16. 14 /** 15 Changes relative to MinGW: 16 lmsname is not imported publicly (instead, win32.lm imports it directly). 17 */ 18 // TODO: 5 macros 19 20 private import win32.lmcons, win32.lmsname, win32.windef; 21 22 const TCHAR[] SERVICE_DOS_ENCRYPTION = "ENCRYPT"; 23 24 const SERVICE_UNINSTALLED=0; 25 const SERVICE_INSTALL_PENDING=1; 26 const SERVICE_UNINSTALL_PENDING=2; 27 const SERVICE_INSTALLED=3; 28 const SERVICE_INSTALL_STATE=3; 29 const SERVICE_PAUSE_STATE=18; 30 const LM20_SERVICE_ACTIVE=0; 31 const LM20_SERVICE_CONTINUE_PENDING=4; 32 const LM20_SERVICE_PAUSE_PENDING=8; 33 const LM20_SERVICE_PAUSED=18; 34 const SERVICE_NOT_UNINSTALLABLE=0; 35 const SERVICE_UNINSTALLABLE=16; 36 const SERVICE_NOT_PAUSABLE=0; 37 const SERVICE_PAUSABLE=32; 38 const SERVICE_REDIR_PAUSED=0x700; 39 const SERVICE_REDIR_DISK_PAUSED=256; 40 const SERVICE_REDIR_PRINT_PAUSED=512; 41 const SERVICE_REDIR_COMM_PAUSED=1024; 42 const SERVICE_CTRL_INTERROGATE=0; 43 const SERVICE_CTRL_PAUSE=1; 44 const SERVICE_CTRL_CONTINUE=2; 45 const SERVICE_CTRL_UNINSTALL=3; 46 const SERVICE_CTRL_REDIR_DISK=1; 47 const SERVICE_CTRL_REDIR_PRINT=2; 48 const SERVICE_CTRL_REDIR_COMM=4; 49 const SERVICE_IP_NO_HINT=0; 50 const SERVICE_CCP_NO_HINT=0; 51 const SERVICE_IP_QUERY_HINT=0x10000; 52 const SERVICE_CCP_QUERY_HINT=0x10000; 53 const SERVICE_IP_CHKPT_NUM=255; 54 const SERVICE_CCP_CHKPT_NUM=255; 55 const SERVICE_IP_WAIT_TIME=0xFF00; 56 const SERVICE_CCP_WAIT_TIME=0xFF00; 57 const SERVICE_IP_WAITTIME_SHIFT=8; 58 const SERVICE_NTIP_WAITTIME_SHIFT=12; 59 const UPPER_HINT_MASK=0xFF00; 60 const LOWER_HINT_MASK=255; 61 const UPPER_GET_HINT_MASK=0xFF00000; 62 const LOWER_GET_HINT_MASK=0xFF00; 63 const SERVICE_NT_MAXTIME=0xFFFF; 64 const SERVICE_RESRV_MASK=0x1FFFF; 65 const SERVICE_MAXTIME=255; 66 const SERVICE_BASE=3050; 67 const SERVICE_UIC_NORMAL=0; 68 69 const SERVICE_UIC_BADPARMVAL = SERVICE_BASE+1; 70 const SERVICE_UIC_MISSPARM = SERVICE_BASE+2; 71 const SERVICE_UIC_UNKPARM = SERVICE_BASE+3; 72 const SERVICE_UIC_RESOURCE = SERVICE_BASE+4; 73 const SERVICE_UIC_CONFIG = SERVICE_BASE+5; 74 const SERVICE_UIC_SYSTEM = SERVICE_BASE+6; 75 const SERVICE_UIC_INTERNAL = SERVICE_BASE+7; 76 const SERVICE_UIC_AMBIGPARM = SERVICE_BASE+8; 77 const SERVICE_UIC_DUPPARM = SERVICE_BASE+9; 78 const SERVICE_UIC_KILL = SERVICE_BASE+10; 79 const SERVICE_UIC_EXEC = SERVICE_BASE+11; 80 const SERVICE_UIC_SUBSERV = SERVICE_BASE+12; 81 const SERVICE_UIC_CONFLPARM = SERVICE_BASE+13; 82 const SERVICE_UIC_FILE = SERVICE_BASE+14; 83 const SERVICE_UIC_M_NULL=0; 84 const SERVICE_UIC_M_MEMORY = SERVICE_BASE+20; 85 const SERVICE_UIC_M_DISK = SERVICE_BASE+21; 86 const SERVICE_UIC_M_THREADS = SERVICE_BASE+22; 87 const SERVICE_UIC_M_PROCESSES = SERVICE_BASE+23; 88 const SERVICE_UIC_M_SECURITY = SERVICE_BASE+24; 89 const SERVICE_UIC_M_LANROOT = SERVICE_BASE+25; 90 const SERVICE_UIC_M_REDIR = SERVICE_BASE+26; 91 const SERVICE_UIC_M_SERVER = SERVICE_BASE+27; 92 const SERVICE_UIC_M_SEC_FILE_ERR = SERVICE_BASE+28; 93 const SERVICE_UIC_M_FILES = SERVICE_BASE+29; 94 const SERVICE_UIC_M_LOGS = SERVICE_BASE+30; 95 const SERVICE_UIC_M_LANGROUP = SERVICE_BASE+31; 96 const SERVICE_UIC_M_MSGNAME = SERVICE_BASE+32; 97 const SERVICE_UIC_M_ANNOUNCE = SERVICE_BASE+33; 98 const SERVICE_UIC_M_UAS = SERVICE_BASE+34; 99 const SERVICE_UIC_M_SERVER_SEC_ERR = SERVICE_BASE+35; 100 const SERVICE_UIC_M_WKSTA = SERVICE_BASE+37; 101 const SERVICE_UIC_M_ERRLOG = SERVICE_BASE+38; 102 const SERVICE_UIC_M_FILE_UW = SERVICE_BASE+39; 103 const SERVICE_UIC_M_ADDPAK = SERVICE_BASE+40; 104 const SERVICE_UIC_M_LAZY = SERVICE_BASE+41; 105 const SERVICE_UIC_M_UAS_MACHINE_ACCT = SERVICE_BASE+42; 106 const SERVICE_UIC_M_UAS_SERVERS_NMEMB = SERVICE_BASE+43; 107 const SERVICE_UIC_M_UAS_SERVERS_NOGRP = SERVICE_BASE+44; 108 const SERVICE_UIC_M_UAS_INVALID_ROLE = SERVICE_BASE+45; 109 const SERVICE_UIC_M_NETLOGON_NO_DC = SERVICE_BASE+46; 110 const SERVICE_UIC_M_NETLOGON_DC_CFLCT = SERVICE_BASE+47; 111 const SERVICE_UIC_M_NETLOGON_AUTH = SERVICE_BASE+48; 112 const SERVICE_UIC_M_UAS_PROLOG = SERVICE_BASE+49; 113 const SERVICE2_BASE=5600; 114 const SERVICE_UIC_M_NETLOGON_MPATH = SERVICE2_BASE+0; 115 const SERVICE_UIC_M_LSA_MACHINE_ACCT = SERVICE2_BASE+1; 116 const SERVICE_UIC_M_DATABASE_ERROR = SERVICE2_BASE+2; 117 118 struct SERVICE_INFO_0 { 119 LPWSTR svci0_name; 120 } 121 alias SERVICE_INFO_0* PSERVICE_INFO_0, LPSERVICE_INFO_0; 122 123 struct SERVICE_INFO_1 { 124 LPWSTR svci1_name; 125 DWORD svci1_status; 126 DWORD svci1_code; 127 DWORD svci1_pid; 128 } 129 alias SERVICE_INFO_1* PSERVICE_INFO_1, LPSERVICE_INFO_1; 130 131 struct SERVICE_INFO_2 { 132 LPWSTR svci2_name; 133 DWORD svci2_status; 134 DWORD svci2_code; 135 DWORD svci2_pid; 136 LPWSTR svci2_text; 137 DWORD svci2_specific_error; 138 LPWSTR svci2_display_name; 139 } 140 alias SERVICE_INFO_2* PSERVICE_INFO_2, LPSERVICE_INFO_2; 141 142 extern (Windows) { 143 deprecated { 144 NET_API_STATUS NetServiceControl(LPCWSTR, LPCWSTR, DWORD, DWORD, 145 PBYTE*); 146 NET_API_STATUS NetServiceEnum(LPCWSTR, DWORD, PBYTE*, DWORD, PDWORD, 147 PDWORD, PDWORD); 148 NET_API_STATUS NetServiceGetInfo(LPCWSTR, LPCWSTR, DWORD, PBYTE*); 149 NET_API_STATUS NetServiceInstall(LPCWSTR, LPCWSTR, DWORD, LPCWSTR*, 150 PBYTE*); 151 } 152 } 153 //MACRO #define SERVICE_IP_CODE(t, n) ((long)SERVICE_IP_QUERY_HINT|(long)(n|(t<<SERVICE_IP_WAITTIME_SHIFT))) 154 //MACRO #define SERVICE_CCP_CODE(t, n) ((long)SERVICE_CCP_QUERY_HINT|(long)(n|(t<<SERVICE_IP_WAITTIME_SHIFT))) 155 //MACRO #define SERVICE_UIC_CODE(c, m) ((long)(((long)c<<16)|(long)(USHORT)m)) 156 //MACRO #define SERVICE_NT_CCP_CODE(t, n) (((long)SERVICE_CCP_QUERY_HINT)|((long)(n))|(((t)&LOWER_HINT_MASK)<<SERVICE_IP_WAITTIME_SHIFT)|(((t)&UPPER_HINT_MASK)<<SERVICE_NTIP_WAITTIME_SHIFT)) 157 //MACRO #define SERVICE_NT_WAIT_GET(c) ((((c)&UPPER_GET_HINT_MASK)>>SERVICE_NTIP_WAITTIME_SHIFT)|(((c)&LOWER_GET_HINT_MASK)>>SERVICE_IP_WAITTIME_SHIFT))