"API Version 0.2.2" LastUpdate : 03/02/23

基本コールバック関数群

CreateService

CreateService 関数は、新しいサービスを作成します。

HNsmService __stdcall CreateService(LPCTSTR ServiceName, TNsmServiceProc ProcAddr);

引数

ServiceName
作成するサービスのサービス名を表す文字列。システムモジュールのサービスリストに既に同名のサービスが存在する場合、この関数は失敗します。
ProcAddr
サービスを実現する関数へのポインタ。

戻り値

成功した場合は、作成したサービスのハンドルを返す。失敗した場合は0を返します。

GetService

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

HNsmService __stdcall GetService(LPCTSTR ServiceName);

引数

ServiceName
取得したいサービスのサービス名を表す文字列。指定されたサービス名のサービスが存在しない場合、この関数は失敗します。

戻り値

成功した場合は、サービスのハンドルを返す。失敗した場合は0を返す。

CallService

CallService 関数は、既存のサービスを呼び出します。

int __stdcall CallService(HNsmService ServiceHandle, WPARAM wParam, LPARAM lParam);

引数

ServiceHandle
呼び出したいサービスのサービスハンドル。 GetService 関数で取得します。
WPARAM
サービスに渡す第1引数
LPARAM
サービスに渡す第2引数

戻り値

サービスが返す戻り値。サービスハンドルが無効な場合の戻り値は保証されない。

CreateEvent

CreateEvent 関数は、新しいイベントを作成します。

HNsmEvent __stdcall CreateEvent(LPCTSTR EventName);

引数

EventName
作成したいイベントのイベント名を表す文字列。システムモジュールのイベントリストに既に同名のイベントが存在する場合、この関数は失敗します。

戻り値

成功した場合は、作成されたイベントのハンドルを返す。失敗した場合は0を返す。

GetEvent

GetEvent 関数は、既存のイベントを通知するために必要なイベントのハンドルを取得します。GetEvent 関数はハッシュリストからイベントを検索する処理が必要なため低速です。頻繁に通知する必要があるイベントにおいては、呼び出し側でイベントのハンドルを保存しておくことによって、検索処理のオーバーヘッドを回避することができます。

HNsmEvent __stdcall GetEvent(LPCTSTR EventName);

引数

EventName
取得したいイベントのイベント名を表す文字列。指定されたイベント名のイベントが存在しない場合、この関数は失敗します。

戻り値

成功した場合は、イベントのハンドルを返す。失敗した場合は0を返す。

NotifyEvent

NotifyEvent 関数は、指定されたイベントに登録されているイベントハンドラを呼び出します。

int __stdcall NotifyEvent(HNsmEvent EventHandle, WPARAM wParam, LPARAM lParam);

引数

EventHandle
通知したいイベントのイベントハンドル。GetEvent 関数で取得します。
WPARAM
イベントハンドラに渡す第1引数
LPARAM
イベントハンドラに渡す第2引数

戻り値

0

HookEvent

HookEvent 関数は、既存のイベントに新しいイベントハンドラを追加します。イベントハンドラを登録すると、NotifyEvent 関数によってイベントが通知されたる度に、ProcAddr で指定したイベントハンドラが呼び出されるようになります。

int __stdcall HookEvent(LPCTSTR EventName, TNsmEventProc ProcAddr);

引数

EventName
イベントハンドラを登録したいイベントのイベント名を表す文字列。指定されたイベント名のイベントが存在しない場合、この関数は失敗します。
ProcAddr
イベントハンドラ関数のアドレス。

戻り値

成功した場合は0以外を返す。

UnhookEvent

UnhookEvent 関数は、既存のイベントから登録されているイベントハンドラを削除して、イベントの通知を解除します。イベントの通知を解除すると、以降指定されたイベントの通知は行われません。

int __stdcall UnhookEvent(LPCTSTR EventName, TNsmEventProc ProcAddr);

引数

EventName
イベントの通知を解除したいイベントのイベント名を表す文字列。指定されたイベント名のイベントが存在しない場合、この関数は失敗します。
ProcAddr
イベントの通知を解除するイベントハンドラ関数のアドレス。

戻り値

成功した場合は0以外を返す。