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 は、このポインターを MiniportInterruptDPC の MiniportDpcContext パラメーターに渡します。 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 | 任意のレベル |