Daniel Stutzbach <dan...@stutzbachenterprises.com> added the comment:
I just found a one line example of the problem: >>> EnumValue(HKEY_PERFORMANCE_DATA, 0) Traceback (most recent call last): File "<stdin>", line 1, in <module> WindowsError: [Error 234] More data is available Other functions are also affected: >>> QueryValueEx(HKEY_PERFORMANCE_DATA, None) Traceback (most recent call last): File "<stdin>", line 1, in <module> WindowsError: [Error 234] More data is available In a nutshell, the Python implementation of these functions works like this: 1) Query the API for the length of the value 2) Allocate a buffer of that size 3) Query the API for the value However, the API functions called in step #1 are not guaranteed to be accurate. It works *most* of the time, but if step #3 returns ERROR_MORE_DATA then we need to dynamically grow the buffer and try again until the data fits. I'll have a patch (with test cases) ready later today. ---------- versions: +Python 3.1, Python 3.2, Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue2810> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com