DeleteService 関数 (winsvc.h)

指定したサービスをサービス コントロール マネージャー データベースから削除するマークを付けます。

構文

BOOL DeleteService(
  [in] SC_HANDLE hService
);

パラメーター

[in] hService

サービスへのハンドル。 このハンドルは OpenService または CreateService 関数によって返され、DELETE アクセス権が必要です。 詳細については、「 サービス セキュリティとアクセス権」を参照してください。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

次のエラー コードは、サービス コントロール マネージャーによって設定される場合があります。 その他は、サービス コントロール マネージャーによって呼び出されるレジストリ関数によって設定される場合があります。

リターン コード 説明
ERROR_ACCESS_DENIED
ハンドルに DELETE アクセス権がありません。
ERROR_INVALID_HANDLE
指定されたハンドルが無効です。
ERROR_SERVICE_MARKED_FOR_DELETE
指定されたサービスは既に削除対象としてマークされています。

注釈

DeleteService 関数は、サービス コントロール マネージャー データベースから削除するサービスをマークします。 CloseServiceHandle 関数の呼び出しによってサービスに対するすべての開いているハンドルが閉じられ、サービスが実行されていないまで、データベース エントリは削除されません。 実行中のサービスは、SERVICE_CONTROL_STOPコントロール コードを使用した ControlService 関数の呼び出しによって停止されます。 サービスを停止できない場合は、システムの再起動時にデータベース エントリが削除されます。

サービス コントロール マネージャーは、サービス キーとそのサブキーをレジストリから削除することで、サービスを削除します。

例については、「 サービスの削除」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winsvc.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

CloseServiceHandle

ControlService

CreateService

OpenService

サービス関数

サービスのインストール、削除、および列挙