共用方式為


GetLogicalProcessorInformationEx 函式 (sysinfoapi.h)

擷取邏輯處理器和相關硬體關聯性的相關信息。

語法

BOOL GetLogicalProcessorInformationEx(
  [in]            LOGICAL_PROCESSOR_RELATIONSHIP           RelationshipType,
  [out, optional] PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
  [in, out]       PDWORD                                   ReturnedLength
);

參數

[in] RelationshipType

要擷取的關聯性類型。 此參數可以是下列其中一個 LOGICAL_PROCESSOR_RELATIONSHIP 值。

意義
RelationProcessorCore
0
擷取共用單一處理器核心之邏輯處理器的相關信息。
RelationNumaNode
1
擷取屬於相同 NUMA 節點之邏輯處理器的相關信息。
RelationCache
2
擷取共用快取之邏輯處理器的相關信息。
RelationProcessorPackage
3
擷取共用實體封裝之邏輯處理器的相關信息。
RelationGroup
4
擷取共用處理器群組之邏輯處理器的相關信息。
RelationProcessorDie
5
擷取共用處理器 die 之邏輯處理器的相關信息。
RelationNumaNodeEx
6
擷取屬於相同 NUMA 節點之邏輯處理器的資訊, (具有完整親和性) 。
RelationProcessorModule
7
擷取共用處理器模組之邏輯處理器的相關信息。
RelationAll
0xffff
擷取所有關聯性類型 (快取、NUMA節點、處理器核心、實體封裝、處理器群組、處理器 die 和處理器模組) 的相關信息。

[out, optional] Buffer

緩衝區的指標,接收可變大小的 SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 結構序列。 如果函式失敗,則未定義這個緩衝區的內容。

[in, out] ReturnedLength

在輸入上,以位元組為單位指定 Buffer 所指向的緩衝區長度。 如果緩衝區夠大,足以包含所有數據,則此函式會成功, 而 ReturnedLength 會設定為傳回的位元組數目。 如果緩衝區太大而無法包含所有數據, 則 GetLastError 會傳回ERROR_INSUFFICIENT_BUFFER,而 ReturnedLength 會設定為包含所有數據所需的緩衝區長度。 如果函式因ERROR_INSUFFICIENT_BUFFER以外的錯誤而失敗, 則 ReturnedLength 的值未定義。

傳回值

如果函式成功,則傳回值為TRUE,而且至少有一 個SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 結構寫入輸出緩衝區。

如果函式失敗,則傳回值為 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果在 WOW64 下執行的 32 位進程在超過 64 個處理器的系統上呼叫此函式,則函式所傳回的一些處理器親和性遮罩可能不正確。 這是因為 64 位 KAFFINITY 結構的高階 DWORD 表示所有 64 個處理器的「折疊」在呼叫端緩衝區的 32 位 KAFFINITY 結構中。 因此,處理器 32 到 63 的親和性遮罩不正確地表示為處理器 0 到 31 的遮罩重複專案。 此外,處理器 32 到 63 的親和性遮罩不正確地表示為處理器 0 到 31 的遮罩重複專案。 此外,PROCESSOR_GROUP_INFO 結構中報告的所有每個群組 ActiveProcessorCount 和 MaximumProcessorCount 值的總和,可能會排除某些作用中的邏輯處理器。

使用 RelationProcessorCore 的關聯性類型呼叫此函式時,它會傳回系統中每個處理器群組中每個使用中處理器核心的 PROCESSOR_RELATIONSHIP 結構。 這是設計方式,因為未受影響的32位線程可以在指定群組中的任何邏輯處理器上執行,包括處理器32到63。 32 位呼叫端可以使用 PROCESSOR_RELATIONSHIP 結構的總數來判斷系統上作用中處理器核心的實際數目。 不過,32 位線程的親和性無法明確設定為任何處理器群組的邏輯處理器 32 到 63。

若要編譯使用此函式的應用程式,請設定 _WIN32_WINNT >= 0x0601。 如需詳細資訊,請參閱 使用 Windows 標頭

從 Windows Server 2022 (21H2 開始的行為,組建 20348)

此和其他 NUMA 函式的行為已經過修改,以更妥善地支援包含更多 64 個處理器的節點的系統。 如需這項變更的詳細資訊,包括啟用此 API 舊行為的相關信息,請參閱 NUMA 支援

RelationNumaNode 的要求會傳回NUMA_NODE_RELATIONSHIP結構,該結構只包含其主要群組內的節點親和性。 GroupCount 值會是 1,且結構大小是固定的。

RelationNumaNodeExRelationAll 的要求會傳回NUMA_NODE_RELATIONSHIP結構,其中包含所有群組上節點的同質數位。 GroupCount 會報告同質數目,且結構的大小是可變的。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 sysinfoapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX