IoGetDeviceNumaNode 函式 (wdm.h)

IoGetDeviceNumaNode 例程會取得裝置的節點編號。

語法

NTSTATUS IoGetDeviceNumaNode(
  [in]  PDEVICE_OBJECT Pdo,
  [out] PUSHORT        NodeNumber
);

參數

[in] Pdo

實體裝置物件的指標(PDO)。 此參數指向代表實體裝置的 DEVICE_OBJECT 結構。

[out] NodeNumber

如果已知節點編號,例程會寫入節點編號的位置指標。

傳回值

如果呼叫成功,IoGetDeviceNumaNode 會傳回STATUS_SUCCESS。 可能的錯誤傳回值包括下列專案:

傳回碼 描述
STATUS_NOT_FOUND
此裝置的節點編號未知。
STATUS_INVALID_PARAMETER
Pdo 參數 NULL 或未指向有效的裝置物件。

言論

在非統一記憶體存取 (NUMA) 多處理器架構中,節點是處理器集合,可共用記憶體區域的快速存取。 記憶體存取不一致,因為處理器可以比存取其他節點中的記憶體更快存取其節點中的記憶體。

連線到特定節點的網路控制站或記憶體控制器,可以比存取其他節點中的記憶體更快存取此節點中的記憶體。 Pdo 參數指向代表裝置與節點之間總線連線的 PDO。

如果 NUMA 多處理器系統包含 n 節點 n 個節點,則節點編號是從 0 到 n n-1。 若要取得最高的節點號碼,請呼叫 KeQueryHighestNodeNumber 例程。

初始化系統之後,當系統繼續執行時,節點計數會維持固定狀態。 此計數可能包含僅限記憶體的節點,這些節點包含記憶體,但沒有作用中的邏輯處理器。 在節點中的第一個處理器開始執行之前,所有邏輯處理器都處於非使用中狀態的節點,實際上是僅限記憶體的節點。 請勿假設裝置連線到的節點包含作用中的處理器。

如果系統沒有 NUMA 架構,例程會將零寫入至 NodeNumber 參數指向的位置。 非 NUMA 架構的範例是對稱多處理器系統 (SMP)。

要求

要求 價值
最低支援的用戶端 適用於 Windows 7 和更新版本的 Windows作系統。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)PowerIrpDDis(wdm)

另請參閱

DEVICE_OBJECT

KeQueryHighestNodeNumber