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 结构。 仅当 dwNotificationStatusERROR_SUCCESS时,此成员才有效。

dwNotificationTriggered

如果 dwNotificationStatusERROR_SUCCESS,则此成员包含触发此回调函数调用的通知的位掩码。

pszServiceNames

如果 dwNotificationStatusERROR_SUCCESS 且通知 SERVICE_NOTIFY_CREATEDSERVICE_NOTIFY_DELETED,则此成员有效,并且是包含一个或多个服务名称的 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 [仅限桌面应用]
标头 winsvc.h (包括 Windows.h)

另请参阅

NotifyServiceStatusChange

SERVICE_STATUS_PROCESS