次の方法で共有


KeRevertToUserAffinityThreadEx 関数 (wdm.h)

KeRevertToUserAffinityThreadEx ルーチンは、現在のスレッドの以前のアフィニティを復元します。

構文

void KeRevertToUserAffinityThreadEx(
  [in] KAFFINITY Affinity
);

パラメーター

[in] Affinity

KAFFINITY現在のスレッドの新しいシステム アフィニティを指定する型指定された変数です。 このパラメーターは、KeSetSystemAffinityThreadEx ルーチンへの前回の呼び出しによって返された値に設定します。

戻り値

何一つ

備考

KeRevertToUserAffinityThreadEx 、現在のスレッドのアフィニティが変更されます。 アフィニティ値は、スレッドを実行できるプロセッサのセットを識別するマスクです。 成功した場合、ルーチンは、このセット内のプロセッサで実行するスレッドをスケジュールします。

Affinity 値が 0 以外の場合、KeRevertToUserAffinityThreadEx スレッドのアフィニティ マスクを Affinity 値に設定します。 Affinity 値が 0 の場合、KeRevertToUserAffinityThreadEx はスレッドの元のユーザー アフィニティ マスクを復元します。 この元のユーザー アフィニティ マスクは、KeSetSystemAffinityThreadExへの以前の呼び出しによって スレッド オブジェクトに保存されました。 KeRevertToUserAffinityThreadEx の呼び出しは、KeSetSystemAffinityThreadExの呼び出しが先行しない限り、効果はありません。

Affinity 値が 0 以外の場合、ルーチンは現在のスレッドのアフィニティ マスクを Affinity 値に変更します。これは、次の両方が true の場合のみです。

  • Affinity 値は有効です (つまり、論理プロセッサに対応するマスク ビットのみが設定されます)。
  • Affinity 値で指定されているプロセッサの少なくとも 1 つがアクティブです。
これらの条件のいずれかが満たされていない場合、KeRevertToUserAffinityThreadEx 呼び出しても効果はありません。

Windows 7 以降のバージョンの Windows では、プロセッサ グループがサポートされています。 プロセッサ グループに関する情報を処理するように設計されたドライバーでは、KeRevertToUserGroupAffinityThreadEx ではなく、プロセッサ グループを指定する KeRevertToUserGroupAffinityThread ルーチン使用する必要があります。このルーチンは使用しません。 ただし、Windows 7 以降のバージョンの Windows KeRevertToUserAffinityThreadEx の実装では、プロセッサ グループをサポートしていない以前のバージョンの Windows 用に記述されたドライバーの互換性が提供されます。 この実装では、0 以外の Affinity 値は、スレッドを実行できるグループ 0 の論理プロセッサのセットを指定するアフィニティ マスクです。 Affinity が 0 の場合、スレッドは元のユーザー モード グループ番号とアフィニティ マスクに戻ります。

KeRevertToUserAffinityThreadEx が IRQL <= APC_LEVEL で呼び出され、呼び出しが成功した場合、新しい (元に戻された) アフィニティ マスクが直ちに有効になります。 呼び出しが戻ると、呼び出し元のスレッドは、新しいアフィニティ マスクで指定されたプロセッサで既に実行されています。 KeRevertToUserAffinityThreadEx が IRQL = DISPATCH_LEVEL で呼び出され、呼び出しが成功した場合、保留中のプロセッサ変更は、呼び出し元が DISPATCH_LEVEL 以下の IRQL を下げるまで延期されます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (「解説」セクションを参照)。
DDI コンプライアンス規則 する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

KAFFINITY

KeRevertToUserGroupAffinityThread

KeSetSystemAffinityThreadEx