public static extern bool QueryServiceStatus(SafeServiceHandle hService, out SERVICE_STATUS dwServiceStatus);
public static extern bool DeleteService(SafeServiceHandle hService);
public static extern bool StartService(SafeServiceHandle hService, int dwNumServiceArgs, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] string[] lpServiceArgVectors);
public static extern bool ChangeServiceConfig2(SafeServiceHandle hService, SERVICE_CONFIG dwInfoLevel, IntPtr lpInfo);
public static extern SafeServiceHandle OpenService(SafeServiceHandle hSCManager, string lpServiceName, SERVICE_ACCESS dwDesiredAccess);
public static extern SafeServiceHandle CreateService(SafeServiceHandle hSCManager, string lpServiceName, string lpDisplayName, SERVICE_ACCESS dwDesiredAccess, SERVICE_TYPE dwServiceType, ServiceStartType dwStartType, SERVICE_ERROR dwErrorControl, string lpBinaryPathName, string lpLoadOrderGroup, IntPtr lpdwTagId, char[] lpDependencies, string lpServiceStartName, string lpPassword);