C28173

警告 C28173:当前函数似乎无法正确适应超过 4 GB 的物理内存

其他信息

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

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

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

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