NdisMQueueDpc 関数 (ndis.h)

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

構文

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 が行ベースの割り込みの場合、このパラメーターは使用されず、ゼロに設定する必要があります。 それ以外の場合、 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 は、このポインターを MiniportInterruptDPCMiniportDpcContext パラメーターに渡します。 MiniportMessageInterruptDPC 関数。

戻り値

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 または割り込みの遅延処理を完了する MiniportMessageInterruptDPC。 ミニポート ドライバーは、 NdisMQueueDpc を呼び出して、他のプロセッサの追加の DPC 呼び出しを要求できます。

要件

要件
サポートされている最小のクライアント NDIS 6.0 および 6.1 でサポートされています。 NDIS 6.20 以降の場合は、NdisMQueueDpcEx を使用します。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL 任意のレベル

こちらもご覧ください

MiniportInterruptDPC

MiniportMessageInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx