Windows下如何用C/C++获取cpu数量和物理核数

麻烦各位,问下Windows下如何用C/C++获取CPU的数量和各自的物理核数?
试过打开注册表HARDWARE\DESCRIPTION\System\CentralProcessor,里面只有逻辑核数的信息。
#include "windows.h"
SYSTEM_INFO sysInfo;
GetSystemInfo( &sysInfo );
printf("now system cpu num is %d\n", sysInfo.dwNumberOfProcessors);

CPU:

#include "windows.h"
SYSTEM_INFO aa;
GetSystemInfo( &aa);
printf("now system cpu num is %d\n", aa.dwNumberOfProcessors);

核数:

int GetNoOfProcessors()
{
    SYSTEM_INFO si;
 
    GetSystemInfo(&si);
 
    return si.dwNumberOfProcessors;
}