HTMulticore 库概述 HTMulticore 库包括两个部分:库本身,称为 HTMulticore.lib;以及 include 文件,称为 HTMulticore.h。 该库可分为三个类别:超线程(HT)技术、特性和移动。HTMulticore 库中所包含的函数在这三个类别中均已列出。本文接下来将对每个类别进行详细介绍。 超线程(HT)技术在超线程(HT)技术类别中列出了以下函数: GetAPIC_Physical_ID 语法: unsigned char GetAPIC_Physical_ID (void) 说明:该函数返回一个字节值,该字节值包含了当前进程中使用的物理和逻辑处理器编号。 返回值:如果系统不支持该特性,则返回 0xFF。
LogicalProcPerPhysicalProc 语法: unsigned char LogicalProcPerPhysicalProc (void) 说明: 该函数返回一个字节值,该字节值包含了每个物理处理器封装中逻辑处理器的最大数量。这是一个物理处理器封装能够处理的逻辑处理器的最大值。可利用函数 CPUCount 来获得 AvailLogicalNum 的值,从而得出程序可使用的逻辑处理器数量。 返回值:逻辑处理器的数量。
CorePerPhysicalProc 语法: unsigned char CorePerPhysicalProc (void) 说明:该函数返回一个字节值,该字节值包含了每个物理处理器封装中最大的内核数。这是物理处理器封装能处理的最大内核数。可利用函数 CPUCount 来获得 AvailCoreNum 的值,从而得出程序可使用的内核数量。 返回值:每个物理处理器封装中的最大内核数。
HTSupported 语法: unsigned int HTSupported (void) 说明:该函数用于检查处理器是否具有内置超线程(HT)技术。 该函数用于检查处理器是否具有内置超线程(HT)技术。如处理器没有内置超线程(HT)技术,则返回 0。
CPUCount 语法: unsigned char CPUCount | (unsigned char *AvailLogicalNum, | | unsigned char *AvailCoreNum, | | unsigned char *PhysicalNum,) |
说明:该函数检索每个物理处理器封装中可用的逻辑处理器及内核数量,并检索物理处理器的总数。“可用的”表示应用能够使用的逻辑处理器或内核数量。这些数量与函数 LogicalProcPerPhysicalProc 和 CorePerPhysicalProc 所返回的数量有所不同。这两个函数返回的是物理处理器封装可处理的逻辑处理器和内核的最大值。这些数据仅供参考,不能用于创建线程。否则会导致性能降低。 如果由于某种原因无法确定物理处理器的总数,则变量 “PhysicalNum” 将设置为该值:CANNOT_DETECT_PHY_CPU 0xFF 返回值:返回系统状态。以下是几种可能的状态: | SINGLE_CORE_AND_HT_ENABLED | 1 | | SINGLE_CORE_AND_HT_DISABLED | 2 | | SINGLE_CORE_AND_HT_NOT_CAPABLE | 4 | | MULTI_CORE_AND_HT_NOT_CAPABLE | 5 | | MULTI_CORE_AND_HT_ENABLED | 6 | | MULTI_CORE_AND_HT_DISABLED | 7 | | CORE_AND_HT_CANNOT_DETECT | 8 | | CORE_CANNOT_DETECT_AND_HT_NOT_CAPABLE | 9 |
IsMultiCore 语法: unsigned int IsMultiCore (void) 说明:该函数将检查处理器是否为多核处理器。 返回值:如果不是多核处理器,则返回 0。
CurProcessId 语法: DWORD CurProcessId (void) 说明:该函数用于检索当前进程的编号。 返回值: DWORD
CurThreadId 语法: DWORD CurThreadId (void) 说明:该函数用于检索当前物理处理器的编号。 返回值: DWORD
特性 在特性类别中列出了以下函数: SupportMMX 语法: bool SupportMMX (void) 说明:该函数用于检查处理器是否支持英特尔® MMX™ 技术。 返回值:如果不支持MMX 技术,则返回 0。
SupportSSE 语法: bool SupportSSE (void) 说明:该函数用于检查处理器是否支持 SSE 返回值:如果不支持SSE,则返回 0。
SupportSSE2 语法: bool SupportSSE2 (void) 说明:该函数用于检查处理器是否支持 SSE2 返回值:如果不支持SSE2,则返回 0。
SupportSSE3 语法: bool SupportSSE3 (void) 说明:该函数用于检查处理器是否支持 SSE3(PNI) 返回值:如果不支持SSE3(PNI),则返回 0。
移动
在移动类别中,列出以下函数: ACLineON 语法: bool ACLineON (void) 说明:该函数用于检查笔记本电脑是否插入交流电源插座中。 返回值:若没有插入,则返回 0。
GetBatteryChargingStatus 语法: BYTE GetBatteryChargingStatus (void) 说明:该函数用于获取笔记本电脑的电池状态。 | 返回值: | NO_BATTERY | 128 | | BATTERY_STATUS_UNKNOWN | 255 | | CHARGE_HIGH | 1 | | CHARGE_LOW | 2 | | CHARGE_CRITICAL | 4 | | CHARGE_CHARGING | 8 |
注意:该函数仅可用于非关键应用。
PercentBatteryRemain 语法: BYTE PercentBatteryRemain (void) 说明:该函数用于获取笔记本电脑电池剩余电量的百分比。 返回值:如果出现错误,则返回 PERCENT_BATTERY_UNKNOWN 255。 注意:该函数仅可用于非关键应用。
BatteryTimeRemain 语法: DWORD BatteryTimeRemain (void) 说明:该函数用于获取笔记本电脑电池的剩余使用时间。 返回值:如果出现错误,则返回 UNKNOWN 0xFFFFFFFF。 注意:该函数仅可用于非关键应用。
BatteryFullTime 语法: DWORD BatteryFullTime (void) 说明:该函数用于获取笔记本电脑电池剩余电量百分比。 返回值:如出现错误,则返回 UNKNOWN 0xFFFFFFFF。 注意:该函数仅可用于非关键应用。
|