次の方法で共有


NdisMQueueDpc 関数 (ndis.h)

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

構文

ULONG NdisMQueueDpc(
  [in]           NDIS_HANDLE NdisInterruptHandle,
  [in]           ULONG       MessageId,
  [in]           ULONG       TargetProcessors,
  [in, optional] 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, optional] MiniportDpcContext

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

戻り値

NdisMQueueDpc は、NDIS が DPC を正常にスケジュールしたターゲット プロセッサを示すビットマップを返します。 戻り値の各ビットは CPU を識別します。 NDIS がビット 0 を設定する場合、NDIS は CPU 0 の DPC をスケジュールします。 NDIS がビット 1 を設定する場合、NDIS は CPU 1 用に DPC をスケジュールしました。などです。

ドライバーが CPU 用の DPC を要求し、NDIS がその DPC をスケジュールしなかったことを示す場合、DPC は、その CPU 用に既にスケジュールされているため、DPC がスケジュールされていません。

備考

NDIS 呼び出し ミニポートInterruptDPC またはミニポート メッセージの InterruptDPC 割り込みの遅延処理を完了します。 ミニポート ドライバーは、他 プロセッサの追加の DPC 呼び出しを要求する NdisMQueueDpc を呼び出すことができます。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 および 6.1 でサポートされます。 NDIS 6.20 以降の場合は、NdisMQueueDpcEx を使用します。
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL 任意のレベル

関連項目

ミニポートInterruptDPC

ミニポート メッセージInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx