The NvAPI_GPU_GetAllClockFrequencies return a frequency of zero, right after the memory clock changes.
This happens with driver version 355.60 with Windows 7 64bit. It was not happen before.
All graphic cards effected. Returning struct looks like:
+ [0] {bIsPresent=1 reserved=1717986918 frequency=705190 } NV_GPU_CLOCK_FREQUENCIES_V2
+ [1] {bIsPresent=0 reserved=1717986918 frequency=3435973836 } NV_GPU_CLOCK_FREQUENCIES_V2
+ [2] {bIsPresent=0 reserved=1717986918 frequency=3435973836 } NV_GPU_CLOCK_FREQUENCIES_V2
+ [3] {bIsPresent=0 reserved=1717986918 frequency=3435973836 } NV_GPU_CLOCK_FREQUENCIES_V2
- [4] {bIsPresent=1 reserved=1717986918 frequency=0 } NV_GPU_CLOCK_FREQUENCIES_V2
bIsPresent 1 unsigned long
reserved 1717986918 unsigned long
frequency 0 unsigned long
+ [5] {bIsPresent=0 reserved=1717986918 frequency=3435973836 } NV_GPU_CLOCK_FREQUENCIES_V2
See the domain NVAPI_GPU_PUBLIC_CLOCK_MEMORY. It is present but 0.
After some seconds, the correct MHz will come.
I fixed this permanently by simple catch the zero and reuse the old frequency.
This is OK … but it could fail other applications maybe …
like my application : http://www.whurst.net/software/whNvInfo/index.html