NdisMWriteLogData 函数 (ndis.h)

NdisMWriteLogData 将驱动程序提供的信息传输到日志文件中,供驱动程序专用 Win32 应用程序使用和显示。

语法

NDIS_STATUS NdisMWriteLogData(
  [in] NDIS_HANDLE LogHandle,
  [in] PVOID       LogBuffer,
  [in] UINT        LogBufferSize
);

参数

[in] LogHandle

指定 NdisMCreateLog 返回的句柄。

[in] LogBuffer

指向驱动程序分配的缓冲区的指针,该缓冲区包含要写入的信息。

[in] LogBufferSize

指定要复制到日志文件的数据字节数。

返回值

NdisMWriteLogData 可以返回下列值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
LogBuffer 中驱动程序提供的数据已复制到日志文件中。
NDIS_STATUS_BUFFER_OVERFLOW
给定的 LogBufferSize 太大,即大于日志文件本身。

注解

如果驱动程序专用应用程序对日志文件数据有未完成的请求, 则 NdisMWriteLogData 在将驱动程序提供的信息复制到日志文件后立即满足该请求。

如果微型端口驱动程序当前在 IRQL < DISPATCH_LEVEL运行,则可以提供指向内核堆栈上某个位置的 LogBuffer 指针。 否则, LogBuffer 必须访问驱动程序从非分页池分配的缓冲区。

在调用 NdisMWriteLogData 之前,驱动程序必须释放它持有的任何旋转锁。

NdisMWriteLogData 不识别日志记录之间的边界,也不识别 Win32 函数 DeviceIoControl,应用程序可以使用 IOCTL_NDIS_GET_LOG_DATA调用它来检索 NDIS 微型端口驱动程序写入 NDIS 日志文件的数据。 NdisMWriteLogDataLogBuffer 上所有微型端口驱动程序提供的数据作为字节流写入日志文件。 DeviceIoControl 也从此类日志中读取数据(作为字节流)。

因此,读取 NDIS 日志的应用程序必须将检索到的数据收集到记录中。 为了帮助此类应用程序收集可变长度的记录,写入此类日志的任何微型端口驱动程序都可以在每个记录的开头插入标记。 然后,格式化检索到的数据的应用程序可以搜索这些标记以确定每条记录的开头。

要求

要求
最低受支持的客户端 NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 NdisMWriteLogData (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisMWriteLogData (NDIS 5.1) ) 。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_Miniport_Driver_Function (ndis)

另请参阅

NdisAllocateFromNPagedLookasideList NdisAllocateMemoryWithTagPriority

NdisMCloseLog

NdisMCreateLog

NdisMFlushLog

NdisReleaseSpinLock