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 をできます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.20 以降でサポートされています。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ndis.h (Ndis.h を含む) |
ライブラリ | Ndis.lib |
IRQL | 任意のレベル |
関連項目
NdisMQueueDpc の
NdisMRegisterInterruptEx の