次の方法で共有


SERVICE_NOTIFY_2W 構造体 (winsvc.h)

サービスの状態通知情報を表します。 これは NotifyServiceStatusChange 関数によって使用されます。

構文

typedef struct _SERVICE_NOTIFY_2W {
  DWORD                  dwVersion;
  PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
  PVOID                  pContext;
  DWORD                  dwNotificationStatus;
  SERVICE_STATUS_PROCESS ServiceStatus;
  DWORD                  dwNotificationTriggered;
  LPWSTR                 pszServiceNames;
} SERVICE_NOTIFY_2W, *PSERVICE_NOTIFY_2W;

メンバー

dwVersion

構造体のバージョン。 このメンバーは SERVICE_NOTIFY_STATUS_CHANGE (2) である必要があります。

pfnNotifyCallback

コールバック関数へのポインター。 詳細については、「解説」を参照してください。

pContext

コールバック関数に渡されるユーザー定義データ。

dwNotificationStatus

通知の状態を示す 値。 このメンバーが ERROR_SUCCESSされている場合、通知は成功し、 ServiceStatus メンバーには有効な情報が含まれています。 このメンバーが ERROR_SERVICE_MARKED_FOR_DELETEされている場合、サービスは削除対象としてマークされており、 NotifyServiceStatusChange によって使用されるサービス ハンドルを閉じる必要があります。

ServiceStatus

サービスの状態情報を含む SERVICE_STATUS_PROCESS 構造体。 このメンバーは、 dwNotificationStatusERROR_SUCCESSされている場合にのみ有効です。

dwNotificationTriggered

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

要件

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

こちらもご覧ください

NotifyServiceStatusChange

SERVICE_STATUS_PROCESS