NdisMRegisterInterruptEx 関数 (ndis.h)

NDIS ミニポート ドライバーは、割り込みを登録する NdisMRegisterInterruptEx 関数を呼び出します。

構文

NDIS_STATUS NdisMRegisterInterruptEx(
  [in]  NDIS_HANDLE                              MiniportAdapterHandle,
  [in]  NDIS_HANDLE                              MiniportInterruptContext,
  [in]  PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
  [out] PNDIS_HANDLE                             NdisInterruptHandle
);

パラメーター

[in] MiniportAdapterHandle

NDIS が に渡したミニポート アダプター ハンドル MiniportInitializeEx 関数。

[in] MiniportInterruptContext

コンテキスト情報のブロックへのポインター。 ミニポート ドライバーは、割り込みに関する情報を格納するには、このメモリを割り当てます。 NDIS は、割り込みに関連付けられている他の関数への後続の呼び出しでコンテキスト情報ブロックを渡します。

[in] MiniportInterruptCharacteristics

へのポインターミニポート ドライバーが作成した構造体をNDIS_MINIPORT_INTERRUPT_CHARACTERISTICSします。 ドライバーは、ハンドラー エントリ ポイントと割り込み特性を定義する構成パラメーターを使用して、この構造体を初期化します。

[out] NdisInterruptHandle

NDIS ハンドルへのポインター。 NDIS は、新しく作成された割り込みオブジェクトのハンドルを 、NdisInterruptHandle ポインターが指定するアドレスに書き込みます。

戻り値

NdisMRegisterInterruptEx は 、次のいずれかの値を返すことができます。

リターン コード 説明
NDIS_STATUS_SUCCESS
NDIS は割り込みオブジェクトを初期化し、 NdisInterruptHandle で有効な割り込みハンドルを指定しました。 NDIS はハードウェア リソースを要求し、割り込みが発生したときに呼び出す関数を設定しました。
NDIS_STATUS_RESOURCES
リソースが不足しているため、NdisMRegisterInterruptEx が失敗しました。
NDIS_STATUS_XXX または NT_STATUS_XXX
割り込みオブジェクトを初期化しようとしましたが、上記のリスト以外の理由で失敗しました。

注釈

ミニポート ドライバーは、割り込みを生成する NIC を管理する場合は、その MiniportInitializeEx 関数から NdisMRegisterInterruptEx を呼び出す必要があります。

MiniportInitializeEx は を呼び出す必要があります。NdisMRegisterInterruptEx を呼び出す前の NdisMSetMiniportAttributes 関数。

ミニポート ドライバーは、次の割り込みサービス関数のエントリ ポイントを指定する必要があります。

MiniportInterrupt

MiniportInterruptDPC

MiniportDisableInterruptEx

MiniportEnableInterruptEx

NIC がメッセージシグナル割り込み (MSI) をサポートしている場合、ミニポート ドライバーは、次の MSI サービス機能のエントリ ポイントを指定する必要があります。

MiniportMessageInterrupt

MiniportMessageInterruptDPC ミニポートDisableMessageInterrupt ミニポートEnableMessageInterrupt

ドライバーが MSI のエントリ ポイントを指定する場合は、MSI 以外の割り込みサービス関数のエントリ ポイントも指定する必要があります。 また、 NdisMRegisterInterruptEx がNDIS_STATUS_SUCCESSを返す場合、ドライバーは の InterruptType メンバーの値を調べる必要があります。 割り 込みの種類を決定する構造体をNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS NDIS が付与します。 NDIS で MSI サポートを許可できない場合は、行ベースの割り込みのサポートが付与されます。

NIC で割り込みが有効になっている場合、ドライバーが NdisMRegisterInterruptEx を呼び出した後でも、NdisMRegisterInterruptEx が返される前でも、ドライバーの MiniportInterrupt(または MiniportMessageInterrupt) 関数をいつでも呼び出すことができます。 そのため、ドライバーは、割り込みを処理する準備ができるまで NdisMRegisterInterruptEx を呼び出さないでください。

ドライバーは を呼び出します。 NdisMRegisterInterruptEx で以前に割り当てられたリソースを解放するための NdisMDeregisterInterruptEx 関数。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 Init_DeRegisterInterrupt(ndis)Init_RegisterInterrupt(ndis)Irql_Interrupt_Function(ndis)NdisMDeregisterInterruptEx(ndis)

こちらもご覧ください

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInitializeEx

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMDeregisterInterruptEx

NdisMSetMiniportAttributes