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 结构。 仅当ERROR_SUCCESS dwNotificationStatus 时,此成员才有效。
dwNotificationTriggered
如果 dwNotificationStatusERROR_SUCCESS,则此成员包含触发此回调函数调用的通知的位掩码。
pszServiceNames
如果 dwNotificationStatusERROR_SUCCESS 且通知 SERVICE_NOTIFY_CREATED 或 SERVICE_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) |