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 以外の場合、ルーチンは、次の両方が true の場合にのみ、現在のスレッドのアフィニティ マスクを Affinity 値に変更します。
- Affinity 値は有効です (つまり、論理プロセッサに対応するマスク ビットのみが設定されます)。
- Affinity 値で指定されているプロセッサの少なくとも 1 つがアクティブです。
Windows 7 以降のバージョンの Windows では、プロセッサ グループがサポートされています。 プロセッサ グループに関する情報を処理するように設計されたドライバーでは、 KeRevertToUserGroupAffinityThread ルーチンを使用する必要があります。このルーチンは、 KeRevertToUserAffinityThreadEx ではなく、プロセッサ グループを指定します。このルーチンは使用しません。 ただし、Windows 7 以降のバージョンの Windows での KeRevertToUserAffinityThreadEx の実装では、プロセッサ グループをサポートしていない以前のバージョンの Windows 用に作成されたドライバーとの互換性が提供されます。 この実装では、0 以外の Affinity 値は、スレッドを実行できるグループ 0 の論理プロセッサのセットを指定するアフィニティ マスクです。 Affinity が 0 の場合、スレッドは元のユーザー モード グループ番号とアフィニティ マスクに戻ります。
KERevertToUserAffinityThreadEx が IRQL <= APC_LEVEL で呼び出され、呼び出しが成功した場合、新しい (元に戻された) アフィニティ マスクが直ちに有効になります。 呼び出しが返されると、呼び出し元のスレッドは、新しいアフィニティ マスクで指定されたプロセッサで既に実行されています。 KERevertToUserAffinityThreadEx が IRQL = DISPATCH_LEVEL で呼び出され、呼び出しが成功した場合、保留中のプロセッサの変更は、呼び出し元が IRQL を下げるまで延期DISPATCH_LEVEL。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (「解説」セクションを参照)。 |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |