捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
17 2017.06

GetLogicalProcessorInformationEx

点击次数:1498 更新时间:2017-6-17 19:31:12  【打印此页

原文链接 -> 传送门

函数功能:

GetLogicalProcessorInformationEx 函数用于获取逻辑处理器和相关硬件之间关系的有关信息。


API 函数原型:

注释:_In_ 说明该参数是输入的,_Out_ 说明该参数是输出的,_opt_ 说明该参数是可选的,_Inout_ 说明该参数既是输入又是输出的。

BOOL GetLogicalProcessorInformationEx(
  _In_      LOGICAL_PROCESSOR_RELATIONSHIP           RelationshipType,
  _Out_opt_ PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
  _Inout_   PDWORD                                   ReturnedLength
);


参数解析:
 

参数

含义

RelationshipType

1. 获取逻辑处理器和相关硬件之间关系的类型

2. 该参数可以是下列 LOGICAL_PROCESSOR_RELATIONSHIP 值中的某一个:

含义

RelationCache
(2)

获取共享同意缓存的逻辑处理器的有关信息

RelationNumaNode
(1)

获取是属于同一 NUMA 节点的逻辑处理器的有关信息

RelationProcessorCore
(0)

获取共享单一处理器核心的逻辑处理器的有关信息

RelationProcessorPackage
(3)

获取共享一个物理包的逻辑处理器的有关信息

RelationGroup
(4)

获取共享一个处理器集群的逻辑处理器的有关信息

RelationAll
(0xffff)

获取所有关系类型的逻辑处理器的有关信息(缓存,NUMA 节点,处理器核心数,物理包,以及处理器集群)

Buffer

1. 指向一个缓冲区的指针

2. 该缓冲区包含了获取到的 SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 结构体数组

3. 如果函数调用失败,则该缓冲区的内容未定义

ReturnedLength

1. 在输入方面,该参数指定了 Buffer 指定的缓冲区的字节长度

2. 如果缓冲区足以容纳所有数据,函数调用成功,那么 ReturnLength 将被设置为返回的字节数

3. 如果缓冲区不足以容纳所有的数据,那么函数调用失败,GetLastError 函数将返回 ERROR_INSUFFICIENT_BUFFER,并且 ReturnLength 会被设置为容纳所有数据所需要的缓冲区长度

4. 如果函数调用失败是除 ERROR_INSUFFICIENT_BUFFER 以外的其他错误,那么 ReturnLength 的值未定义



返回值:

1. 如果函数调用成功,则返回值为 TRUE,并且至少有一个 SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 结构被写入到输出缓冲区;

2. 如果函数调用失败,则返回值为 FALSE。

获取有关错误的更多信息,请调用 GetLastError 函数。


备注:

1. 如果一个运行在 WOW64 下的 32 位进程在具有超过 64 个处理器的系统上调用了该函数,那么一些由该函数返回的处理器的 affinity 掩码可能不正确。这是因为代表所有 64 个处理器的 64 位 KAFFINITY 结构的 DWOED 高序位被折叠成在调用者缓冲区中 32 位 KAFFINITY 结构。因此,处理器 32 到 63 的 affinity 掩码被错误的表示为处理器 0 到 31 的掩码。另外,PROCESSOR_GROUP_INFO 结构中的每个集群的 ActiveProcessorCount 总数和 MaximumProcessorCount 值可能不包括一些活动的逻辑处理器。

2. 但函数以 RelationProcessorCore 关系类型被调用,它会为系统中每个处理器集群中的每个活动的处理器返回一个 PROCESSOR_RELATIONSHIP 结构。这是设计使然,因为一个非 affinity 的 32 位线程可以在给定集群的任何逻辑处理器上运行,包括处理器 32 到 63。32 位调用者可以使用全部的 PROCESSOR_RELATIONSHIP 结构来决定系统中活动处理器实际的核心数。然而,32 位线程的 affinity 不能被明确的设置为任何处理器集群的第 32 到第 63 个逻辑处理器。

3. 编译一个使用了该函数的程序,需要设置 _WIN32_WINNT >= 0x0601。更多信息,请参见 Using the Windows Headers


需求:
 

Minimum supported client

Windows 7 [仅桌面应用程序]

Minimum supported server

Windows Server 2008 R2 [仅桌面应用程序]

Header

WinBase.h (包含于 Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll

 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1498 更新时间:2017-6-17 19:31:12  【打印此页
关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修