WdmlibIoGetAffinityInterrupt 関数 (iointex.h)

WdmlibIoGetAffinityInterrupt 関数は、割り込みオブジェクトのグループ アフィニティを取得します。

構文

NTSTATUS WdmlibIoGetAffinityInterrupt(
  [in]  PKINTERRUPT     InterruptObject,
  [out] PGROUP_AFFINITY GroupAffinity
);

パラメーター

[in] InterruptObject

割り込みオブジェクトへのポインター。 このパラメーターは、デバイスの割り込みを受信するドライバーによる登録を表す KINTERRUPT 構造体を指します。 構造体は不透明です。 呼び出し元は、 WdmlibIoConnectInterruptEx または IoConnectInterrupt ルーチンの以前の呼び出しでこのポインター値 取得しました。

[out] GroupAffinity

InterruptObject が指す割り込みオブジェクトのグループ アフィニティを指定するGROUP_AFFINITY構造体をルーチンが書き込む呼び出し元割り当てバッファーへのポインター。 このバッファーは、 構造体を格納するのに十分な大きさである必要があります。

戻り値

WdmlibIoGetAffinityInterrupt は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
InterruptObject パラメーターは、有効な割り込みオブジェクトを指していません。

注釈

カーネル モード ドライバーは、このルーチンを呼び出して、ドライバーの登録された割り込みサービス ルーチン (ISR) がデバイスの割り込みを受信できる論理プロセッサのセットを取得します。 このプロセッサのセットは、グループ番号とアフィニティ マスクを指定する GROUP_AFFINITY 構造体によって記述されます。 特定の ISR 登録に割り当てられているすべてのプロセッサは、同じグループに属している必要があります。

ドライバーは、 WdmlibIoConnectInterruptEx または IoConnectInterrupt ルーチンへの以前の呼び出しで ISR 登録しました。

Windows 7 では、 WdmlibIoConnectInterruptExIoConnectInterrupt は、グループ 0 の論理プロセッサにのみデバイス割り込みを割り当てます。 これは既定です。 ドライバーは、INF ファイルまたはその IRP_MN_FILTER_RESOURCE_REQUIREMENTS要求への 応答で、そのデバイスの別の割り込みアフィニティを指定できます。 割り込みアフィニティを変更する方法の詳細については、WHDC Web サイトの 「64 プロセッサを超えるサポート システム 」ホワイト ペーパーを参照してください。

要件

要件
サポートされている最小のクライアント Windows 7 以降のバージョンの Windows で使用できます。
対象プラットフォーム Windows
ヘッダー iointex.h (Iointex.h、Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx