NdisWriteEventLogEntry 将事件记录到 Win32 事件日志。
语法
NDIS_STATUS NdisWriteEventLogEntry(
[in] PVOID LogHandle,
[in] NDIS_STATUS EventCode,
[in] ULONG UniqueEventValue,
[in] USHORT NumStrings,
[in, optional] PVOID StringsList,
[in] ULONG DataSize,
[in, optional] PVOID Data
);
参数
[in] LogHandle
指向正在记录此事件的协议的驱动程序对象的指针。
[in] EventCode
指定描述事件的 NDIS_STATUS_XXX 代码。
[in] UniqueEventValue
标识错误消息的此实例。
[in] NumStrings
指定可选 StringsList中 Unicode 字符串的指针数。 如果 StringsListNULL,则 NumStrings 必须为零。
[in, optional] StringsList
NULL 或指向缓冲的 Unicode 字符串。 这些字符串(描述事件)插入到 Win32 事件日志中,可以使用 Win32 事件查看器进行检查。 每个字符串必须是 NUL 终止的 Unicode 字符串。
[in] DataSize
指定 数据 的二进制数据的缓冲区中的字节数。 如果 数据NULL,DataSize 必须为零。
[in, optional] Data
NULL 或指向缓冲的二进制转储数据,这对于了解事件很有用。 可以使用 Win32 事件查看器检查此数据。
返回值
NdisWriteEventLogEntry 可以返回以下值之一:
| 返回代码 | 描述 |
|---|---|
|
已成功记录该事件。 |
|
(可选)提供的 Unicode 字符串和二进制转储数据超出了允许的最大大小(MAX_EVENT_LOG_DATA_SIZE)。 |
|
NDIS 无法为 I/O 错误日志记录分配内存。 |
言论
NdisWriteEventLogEntry 分配 I/O 错误日志记录,在记录中填写有关事件的信息,然后将记录写入 I/O 错误日志文件。 用户可以使用 Win32 事件查看器查看记录的事件,包括事件和/或可选二进制转储数据的可选说明。
NT 错误日志记录线程使用可选 StringsList 中提供的任何字符串来填写写入 Win32 事件日志的消息。 每个字符串必须是 NUL 终止的 Unicode 字符串。 I/O 管理器假定初始字符串是报告错误的驱动程序的名称或导致错误的设备的名称。
调用方提供的 Unicode 字符串应从注册表中读取,或者应与语言无关(也就是说,字符串在任何语言中应相同,例如,字符串可以是文件名)。
调用方提供的转储数据可以是任何二进制数据(例如寄存器值),在了解事件时很有用。 调用方不必填充二进制数据。 如有必要,NdisWriteEventLogEntry 填充二进制转储数据,以便最终数据大小是 (ULONG)大小的多个整型。
系统将提供给 NdisWriteEventLogEntry 的可选数据的总大小限制为。 字符串列表和(可能填充)二进制转储的组合大小必须小于或等于MAX_EVENT_LOG_DATA_SIZE。
NdisWriteEventLogEntry 仅由协议驱动程序调用。 微型端口驱动程序应调用 NdisWriteErrorLogEntry 来记录事件和错误。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisWriteEventLogEntry (NDIS 5.1)。 在 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisWriteEventLogEntry (NDIS 5.1)。 |
| 目标平台 | 普遍 |
| 标头 | ndis.h (包括 Ndis.h) |
| 库 | Ndis.lib |
| IRQL | <= DISPATCH_LEVEL |
| DDI 符合性规则 | Irql_Miscellaneous_Function(ndis) |