public ServiceManager(string machineName) { if (string.IsNullOrWhiteSpace(machineName) || machineName.IndexOf('\\') != -1) { var message = $"{machineName} is invalid."; var paramName = nameof(machineName); throw new ArgumentException(message, paramName); } _managerPtr = ADVANCED_API.OpenSCManager(machineName, null, SC_MANAGER_ACCESS.SC_MANAGER_ALL_ACCESS); if (_managerPtr == IntPtr.Zero) { var error = Marshal.GetLastWin32Error(); throw new Win32Exception(error); } }