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