amd x2 processor with 4 GB of memory running on vista ultimate x64
the below code I have found is far more accurate on my system. it uses the GetNativeSystemInfo found in the kernel32.dll and returns 2 for the dwNumberOfProcessors everytime. to be honest based on the code below I have never ran GetSystemInfo on my computer because GetNativeSystemInfo has been successfull every time I have ran this code.
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
ZeroMemory( &SysInfo, sizeof( SYSTEM_INFO ) );
PGNSI pGNSI;
pGNSI = (PGNSI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetNativeSystemInfo");
if( pGNSI != NULL )
{
pGNSI( &SysInfo );
} else GetSystemInfo( &SysInfo );