warning C28173: The current function appears to incorrectly adapt to physical memory above 4 GB

Additional information

The code does not appear to recover from a call to IoGetDmaAdapter that returns a small number of map registers. See the documentation for details.


On systems that have more than 4 GB of memory, the IoGetDmaAdapter function might return fewer map registers than requested; this becomes more likely when the value requested becomes large (approaching 64).This is because of the need to map physical memory above 4 GB into the space below 4 GB.

This warning message appears when code does not adapt to getting fewer registers than it asked for. When a function makes a call to IoGetDmaAdapter, the Code Analysis tool simulates that the IoGetDmaAdapter function returns a smaller number of registers than requested. The calling function must handle this condition and return successfully.

Note that there are other ways that a driver can fail on systems with more than 4 GB. You should inspect your code for these possible failure modes. For more information about the 4 GB memory issues and the map registers, see NdisMAllocateMapRegisters.



Send comments about this topic to Microsoft

© 2015 Microsoft