3

SetProcessAffinityMask WinAPI 関数には dwProcessAffinityMask パラメータがあり、各ビットはシステム内の単一の論理プロセッサに対応します。

GetLogicalProcessorInformation WinAPI 関数には、タイプ PSYSTEM_LOGICAL_PROCESSOR_INFORMATION の出力パラメータ Buffer があります。この構造体の ProcessorMask フィールドは、「この構造体で記述されたプロセッサを識別するプロセッサ マスク」です。

これら 2 つのマスクのビット インデックスが同じことを意味する (同じ論理プロセッサに対応する) という保証はありますか?

MSDN で明示的な情報を見つけることができませんでした。

4

1 に答える 1

2

SetProcessAffinityMaskから:

プロセス アフィニティ マスクは、プロセスのスレッドを実行できる論理プロセッサを各ビットが表すビット ベクトルです。

SYSTEM_LOGICAL_PROCESSOR_INFORMATIONは明確ではありません:

ProcessorMaskこの構造体によって記述されるプロセッサを識別するプロセッサ マスク。プロセッサ マスクは、セットされた各ビットが関係内のアクティブなプロセッサを表すビット ベクトルです。

しかし、GetLogicalProcessorInformationはより良い情報を提供します。

バッファに返される各 SYSTEM_LOGICAL_PROCESSOR_INFORMATION 構造には、次のものが含まれます。
•論理プロセッサ アフィニティ マスク。構造内の情報が適用される論理プロセッサを示します。

参照されるその論理プロセッサ アフィニティ マスクは、ProcessorMask メンバです。

于 2014-07-04T12:46:51.803 に答える