共用方式為


PsQueryProcessAvailableCpus 函式 (wdm.h)

PsQueryProcessAvailableCpus 函式會查詢可供指定進程執行的 CPU 集合。

語法

NTSTATUS PsQueryProcessAvailableCpus(
  [in]           PEPROCESS     Process,
  [in, out]      PKAFFINITY_EX Affinity,
  [in, optional] PULONG64      ObservedSequenceNumber,
  [out]          PULONG64      SequenceNumber
);

參數

[in] Process

進程的指標(PEPROCESS)。

[in, out] Affinity

將接收進程可用 CPU 集合之擴充親和性物件 (PKAFFINITY_EX) 的指標。

[in, optional] ObservedSequenceNumber

選擇性地透過先前呼叫這個例程,提供呼叫端觀察到的最新序號指標。 如果此序號符合目前的序號,則例程會傳回STATUS_NO_WORK_DONE,而且不會寫入同質緩衝區。

[out] SequenceNumber

緩衝區的指標,該緩衝區將接收指定進程的可用 CPU 目前序號。

返回值

PsQueryProcessAvailableCpus 會傳回下列其中一個 NTSTATUS 值:

回傳碼 說明
STATUS_SUCCESS 查詢已順利完成。
STATUS_INVALID_PARAMETER 任何必要的緩衝區都是 NULL。
STATUS_NO_WORK_DONE 指定的序號符合目前的序號,且未執行任何查詢。
STATUS_BUFFER_TOO_SMALL 指定的同質緩衝區太小。

備註

您可以在 IRQL 從 PASSIVE_LEVEL 呼叫此例程,以DISPATCH_LEVEL。

親和性緩衝區必須夠大,才能容納使用中的處理器群組計數。 使用 KeQueryActiveGroupCount 來判斷所需的大小。

序號可讓呼叫端藉由檢查自上次呼叫之後的CPU可用性是否已變更,來優化重複的查詢。

需求

要求 價值觀
頁首 wdm.h
IRQL 要DISPATCH_LEVEL的PASSIVE_LEVEL

另請參閱

PsQueryProcessAvailableCpusCount

PsQuerySystemAvailableCpus

KeQueryActiveGroupCount