次の方法で共有


NdisMQueueDpcEx 関数 (ndis.h)

NDIS ミニポート ドライバーは、NdisMQueueDpcEx 関数を呼び出して、CPU での DPC 呼び出しをスケジュールします。

構文

KAFFINITY NdisMQueueDpcEx(
  [in] IN NDIS_HANDLE     NdisInterruptHandle,
  [in] IN ULONG           MessageId,
  [in] IN PGROUP_AFFINITY TargetProcessors,
  [in] IN PVOID           MiniportDpcContext
);

パラメーター

[in] NdisInterruptHandle

ミニポート ドライバーが前の呼び出しで取得した割り込みハンドルNdisMRegisterInterruptEx 関数を します。

[in] MessageId

DPC の MSI メッセージ ID。 DPC が行ベースの割り込みの場合、このパラメーターは使用されず、0 に設定する必要があります。 それ以外の場合 MessageId は、 IO_INTERRUPT_MESSAGE_INFO_ENTRY 内部の構造 IO_INTERRUPT_MESSAGE_INFO 構造体。 ドライバーが正常に NdisMRegisterInterruptEx 関数を使用して MSI に登録すると、NDIS は、MessageInfoTable メンバーに関連付けられているIO_INTERRUPT_MESSAGE_INFO構造体へのポインターを渡します。

[in] TargetProcessors

ターゲット プロセッサを示すビットマップ。 NDIS は、ビットマップで示されている各ターゲット プロセッサの DPC をスケジュールする必要があります。 TargetProcessors の各ビットは CPU を識別します。 呼び出し元がビット 0 を設定する場合、NDIS は CPU 0 の DPC をスケジュールします。 呼び出し元がビット 1 を設定する場合、NDIS は CPU 1 用の DPC をスケジュールします。

[in] MiniportDpcContext

呼び出し元が指定したコンテキスト領域へのポインター。 NDIS は、ミニポートInterruptDPCミニポートDpcContext パラメーターにこのポインターを渡します。ミニポート メッセージInterruptDPC 関数を します。

戻り値

NdisMQueueDpcEx は、ターゲット プロセッサを示すビットマップを返します。 戻り値の各ビットは CPU を識別します。

NDIS は、ビットマップに設定されている各ターゲット プロセッサの DPC を正常にスケジュールしました。 NDIS がビット 0 を設定する場合、NDIS は CPU 0 の DPC をスケジュールします。 NDIS がビット 1 を設定する場合、NDIS は CPU 1 用に DPC をスケジュールしました。などです。

ドライバーが CPU に対して DPC を要求し、その DPC をスケジュールしなかったことを NDIS が示した場合、この割り込み/プロセッサ ペアにマップする DPC がその CPU に対して既にスケジュールされているため、DPC はスケジュールされませんでした。

備考

NDIS 6.20 以降のミニポート ドライバーは、他のプロセッサ DPC 呼び出しを要求する NdisMQueueDpcEx を呼び出します。 NDIS は、ミニポートInterruptDPC を呼び出します。ミニポート メッセージの InterruptDPC 割り込みの遅延処理を完了する関数です。

NdisMQueueDpcEx は、NdisMQueueDpc 関数と同じですが、TargetProcessors パラメーターにKGROUP_AFFINITYの型があることを除きます。 そのため、NdisMQueueDpcEx は、任意のプロセッサ グループ内のプロセッサで DPC をスケジュールできます。 複数のプロセッサ グループで DPC をスケジュールするには、複数の呼び出しを使用して NdisMQueueDpcEx できます。

: NdisMQueueDpcミニポートインターラップ、および ミニポート メッセージInterrupt 関数には、ULONG TargetProcessors パラメーターがあります。 このパラメーターは、プロセッサー・グループ 0 の最初の 32 個のプロセッサーを指定します。
 
重要な NDIS 6.20 以降のドライバーは、常に NdisMQueueDpcEx を使用して DPC をスケジュールする必要があります。
 

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.20 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL 任意のレベル

関連項目

ミニポートInterrupt

ミニポートInterruptDPC

ミニポート メッセージInterrupt

ミニポート メッセージInterruptDPC

NdisMQueueDpc

NdisMRegisterInterruptEx