C28173

警告 C28173:当前函数似乎错误地适应超过 4 GB 的物理内存

其他信息

代码似乎不会从调用 IoGetDmaAdapter 中恢复,该调用返回少量映射寄存器。 有关详细信息,请参阅文档。

在内存超过 4 GB 的系统上,IoGetDmaAdapter 函数可能会返回的映射寄存器少于请求的映射寄存器;当请求的值变大(接近 64 时),这变得更加可能。这是因为需要将 4 GB 以上的物理内存映射到低于 4 GB 的空间。

当代码不适应获得比要求更少的寄存器时,将显示此警告消息。 当函数调用 IoGetDmaAdapter时,代码分析工具模拟 IoGetDmaAdapter 函数返回的寄存器数少于请求的寄存器数。 调用函数必须处理此条件并成功返回。

请注意,驱动程序在其他方式上可以在超过 4 GB 的系统上失败。 应检查代码中是否有这些可能的故障模式。 有关 4 GB 内存问题和映射寄存器的详细信息,请参阅 NdisMAllocateMapRegisters