警报函数
[从 Windows Vista 开始,不支持警报函数和信使服务。]
网络管理警报功能通知网络服务程序和网络事件的应用程序。 事件 是应用程序定义的硬件的特定实例、事件或状态。 警报函数允许应用程序指示何时发生预定义事件。
Windows Server 2003: Windows Server 2003 上默认禁用警报器和信使服务。 在调用网络管理警报功能或网络管理 消息函数之前,必须重新启用服务。
下面列出了警报函数。
功能 | 描述 |
---|---|
NetAlertRaise | 向所有已注册的客户端通知特定事件已发生。 |
NetAlertRaiseEx | 简化了通知已注册的客户端发生了特定事件,因为与 NetAlertRaise不同,NetAlertRaiseEx 不需要 STD_ALERT 结构。 |
调用 NetAlertRaise 函数或 NetAlertRaiseEx 函数时,警报器服务必须在客户端计算机上运行。 如果服务未运行,则函数会失败并 ERROR_FILE_NOT_FOUND。 客户端上的警报器服务调用 NetMessageBufferSend 函数向收件人发送信息。
应用程序、网络服务和内部网络组件使用网络管理警报功能来引发警报,并在发生特定类型的事件时通知各种应用程序或用户。 警报类别函数、数据类型、结构和常量在 LMCONS 中定义。H、LMERR。H 和 LMALERT。H 头文件。 若要访问这些定义,请定义常量INCL_NETERRORS和INCL_NETALERT,并包括头文件 LM.H。
LMALERT。H 文件预定义以下警报类(网络事件类型)用于发送警报:
- 需要管理协助的网络事件
- 向错误日志文件添加条目
- 由用户或应用程序接收广播消息
- 完成打印作业
- 用户使用某些应用程序或资源
可以根据需要为网络应用程序定义其他类别的警报。 例如,如果服务器上的应用程序定期将大量数据写入磁盘驱动器,则应用程序将运行填充磁盘的风险。 在这种情况下,可能需要添加事件“没有可用磁盘空间”来触发警报,通知应用程序暂停或终止正在填充磁盘的进程。 警报的事件名称可以是任何文本字符串。
通过调用 NetAlertRaise 函数引发警报时,消息数据应包含一个 STD_ALERT 标头结构,后跟一个 ADMIN_OTHER_INFO、ERRLOG_OTHER_INFO、PRINT_OTHER_INFO中特定于警报的其他固定长度数据。 或 USER_OTHER_INFO 结构。 其他可变长度数据可以遵循特定于警报的结构。 (对 NetAlertRaiseEx 函数的调用不需要 STD_ALERT 结构。调用应用程序必须为所有结构和可变长度数据分配内存,并在调用返回后释放内存。
以下宏可用于警报数据缓冲区。
宏 | 描述 |
---|---|
ALERT_OTHER_INFO | 返回指向警报消息中 STD_ALERT 结构后面的固定长度数据的指针。 |
ALERT_VAR_DATA | 返回指向警报消息中特定于警报的数据的可变长度数据的指针。 |
可以使用 Windows Management Instrumentation (WMI) SDK 进行事件通知,而不是使用网络管理警报功能。 有关支持 WMI 事件模型的平台的详细信息,请参阅 WMI 文档中 WMI 基础结构 和 监视事件。