Yes, it really is 64. Since it is #define , it cannot change without recompiling programs, so it can hardly change.
Since STATUS_ABANDONED_WAIT_63 defined as 0xBF and STATUS_USER_APC is defined as 0xC0, if you increased MAXIMUM_WAIT_OBJECTS even by one, there would be no way to tell the difference between the 65th descriptor that was left and your expectation to complete APC. Correctly changing MAXIMUM_WAIT_OBJECTS will require renumbering the status codes, which will require recompiling each Win32 program.
In addition, a program compiled with MAXIMUM_WAIT_OBJECTS , defined as 65, will not work on the OS where it is defined as 64.
Gabe
source share