警报函数

[从 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_INFOERRLOG_OTHER_INFOPRINT_OTHER_INFO中特定于警报的其他固定长度数据。 或 USER_OTHER_INFO 结构。 其他可变长度数据可以遵循特定于警报的结构。 (对 NetAlertRaiseEx 函数的调用不需要 STD_ALERT 结构。调用应用程序必须为所有结构和可变长度数据分配内存,并在调用返回后释放内存。

以下宏可用于警报数据缓冲区。

描述
ALERT_OTHER_INFO 返回指向警报消息中 STD_ALERT 结构后面的固定长度数据的指针。
ALERT_VAR_DATA 返回指向警报消息中特定于警报的数据的可变长度数据的指针。

 

可以使用 Windows Management Instrumentation (WMI) SDK 进行事件通知,而不是使用网络管理警报功能。 有关支持 WMI 事件模型的平台的详细信息,请参阅 WMI 文档中 WMI 基础结构监视事件