次の方法で共有


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

dwNotificationStatusERROR_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 ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてSERVICE_NOTIFY_2を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ヘッダー winsvc.h (Windows.h を含む)

関連項目

NotifyServiceStatusChange の

SERVICE_STATUS_PROCESS