win32 api获取逻辑处理器信息

VOID ShowProcessors()
{
	PSYSTEM_LOGICAL_PROCESSOR_INFORMATION pBuffer = NULL;
	DWORD dwSize = 0;
	DWORD dwProcCoreCount = 0;

	BOOL bResult = GetLogicalProcessorInformation( pBuffer , &dwSize );
	if ( GetLastError() != ERROR_INSUFFICIENT_BUFFER )
	{
		OutputDebugString(TEXT("不能获取处理器信息"));
		return;
	}

	pBuffer = (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION)malloc(dwSize);
	bResult = GetLogicalProcessorInformation( pBuffer , &dwSize );
	if ( !bResult )
	{
		free(pBuffer);
		OutputDebugString(TEXT("不能获取处理器信息"));
		return;
	}

	DWORD lpiCount = dwSize / sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION);
	for ( DWORD current = 0 ; current < lpiCount ; ++current )
	{
		if ( pBuffer[current].Relationship == RelationProcessorCore )
		{
			if ( pBuffer[current].ProcessorCore.Flags == 1 )
			{
				OutputDebugString(TEXT(" + one CPU core (HyperThreading)\n"));
			}
			else
			{
				OutputDebugString(TEXT(" + one CPU socket\n"));
			}
			++dwProcCoreCount;
		}
	}

	TCHAR pStr[MAX_PATH];
	StringCchPrintf( pStr , MAX_PATH , TEXT(" -> %d active CPU(s)\n") , dwProcCoreCount );
	OutputDebugString( pStr );
	free(pBuffer);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值