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_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) |