I don't think we want to emulate the broken XP behaviour of requiring a buffer, even when querying the buffer size. Apps written to comply with this behaviour should work on the current implementation. And MSDN mentions only XP, which implies that it has been fixed in Win2k3 and up.
In this case the fix is for a Null reference as indicated in the accompanying tests. The test prangs in the current build and the patch for pdh_main.c fixes the behaviour on XP. As I said, I can't tell if it fixes it in anything else. However, there needs to be a fix for the NULL reference and the case of needing a buffer if size and index > 0 seems to be reasonable behaviour.
Does the test set work on Win2003|win2K?
Jeff