警报函数

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

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

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

 

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