システム関数:サービスの管理

CreateService

新しいサービスを登録します.

HNsmService __stdcall CreateService(
    LPCTSTR lpServiceName,
    TNsmServiceProc ProcAddr
);
引数
lpServiceName
作成するサービスのサービス名.システムモジュールのサービスリストに既に同名のサービスが存在する場合,この関数は失敗します.
ProcAddr
サービスを実際に処理する関数へのポインタ
戻り値
成功した場合は、作成したサービスのハンドルを返す.失敗した場合は0を返します.

GetService

登録済みのサービスを呼び出すために必要な,サービスのハンドルを取得します.GetService関数はハッシュリストからサービスを検索する処理が必要なため低速です.頻繁に呼び出す必要があるサービスにおいては,呼び出し側でサービスのハンドルを保存しておくことによって,検索処理のオーバーヘッドを回避することができます.

HNsmService __stdcall GetService(
    LPCTSTR lpServiceName
);
引数
lpServiceName
取得したいサービスのサービス名.指定されたサービス名のサービスが登録されていない場合,この関数は失敗します.
戻り値
成功した場合は、作成したサービスのハンドルを返す.失敗した場合は0を返します.

CallService

ハンドルを用いて,登録済みのサービスを呼び出します.

HNsmService __stdcall CallService(
    HNsmService ServiceHandle,
    unsigned long wParam,
    unsigned long lParam
);
引数
ServiceHandle
呼び出したいサービスのハンドル.GetService関数で取得します.
wParam
サービスに渡す第1引数
lParam
サービスに渡す第2引数
戻り値
サービスが返す戻り値.サービスハンドルが無効な場合の戻り値は保証されない.