SERVICE_NOTIFY_2A構造体 (winsvc.h)
サービスの状態通知情報を表します。 NotifyServiceStatusChange 関数によって使用されます。
構文
typedef struct _SERVICE_NOTIFY_2A {
DWORD dwVersion;
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
PVOID pContext;
DWORD dwNotificationStatus;
SERVICE_STATUS_PROCESS ServiceStatus;
DWORD dwNotificationTriggered;
LPSTR pszServiceNames;
} SERVICE_NOTIFY_2A, *PSERVICE_NOTIFY_2A;
メンバー
dwVersion
構造体のバージョン。 このメンバーは SERVICE_NOTIFY_STATUS_CHANGE する必要があります (2)。
pfnNotifyCallback
コールバック関数へのポインター。 詳細については、「解説」を参照してください。
pContext
コールバック関数に渡されるユーザー定義データ。
dwNotificationStatus
通知の状態を示す 値。 このメンバーが ERROR_SUCCESS場合、通知は成功し、 ServiceStatus メンバーには有効な情報が含まれます。 このメンバーが ERROR_SERVICE_MARKED_FOR_DELETEされている場合、サービスは削除対象としてマークされており、 NotifyServiceStatusChange によって使用されるサービス ハンドルを閉じる必要があります。
ServiceStatus
サービスの状態情報を含む SERVICE_STATUS_PROCESS 構造体。 このメンバーは、 dwNotificationStatus が ERROR_SUCCESSされている場合にのみ有効です。
dwNotificationTriggered
dwNotificationStatus がERROR_SUCCESSされている場合、このメンバーには、コールバック関数へのこの呼び出しをトリガーした通知のビットマスクが含まれます。
pszServiceNames
dwNotificationStatus がERROR_SUCCESSされ、通知がSERVICE_NOTIFY_CREATEDまたはSERVICE_NOTIFY_DELETED場合、このメンバーは有効であり、1 つ以上のサービス名を含むMULTI_SZ文字列です。 作成されたサービスの名前には '/' プレフィックスが付きます。そのため、削除されたサービスの名前と区別できます。
このメンバーが有効な場合、通知コールバック関数は LocalFree 関数を使用して文字列を解放する必要があります。
注釈
コールバック関数は次のように宣言されます。
typedef VOID( CALLBACK * PFN_SC_NOTIFY_CALLBACK ) (
IN PVOID pParameter
);
コールバック関数は、呼び出し元によって提供 されるSERVICE_NOTIFY 構造体へのポインターを受け取ります。
注意
winsvc.h ヘッダーは、SERVICE_NOTIFY_2をエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | winsvc.h (Windows.h を含む) |