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