NDIS_RECEIVE_THROTTLE_PARAMETERS構造体 (ndis.h)
NDIS_RECEIVE_THROTTLE_PARAMETERS構造体は、ミニポート ドライバーが遅延プロシージャ 呼び出し (DPC) で示す必要がある NET_BUFFER_LIST 構造体の最大数を指定します。
構文
typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
ULONG MaxNblsToIndicate;
ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;
メンバーズ
MaxNblsToIndicate
ミニポート ドライバーが受信通知に含める必要がある NET_BUFFER_LIST 構造体の最大数。 この値がNDIS_INDICATE_ALL_NBLS場合、ミニポートは、NET_BUFFER_LISTのすべての構造体を示すことができます。
MoreNblsPending
TRUE 場合、ミニポート ドライバーは、最大値または NDIS が要求した構造体を処理した後、保留中のNET_BUFFER_LIST構造体を持っていることを指定する、MaxNblsToIndicate メンバー。
備考
ReceiveThrottleParametersミニポートInterruptDPC のパラメーターと ミニポート メッセージInterruptDPC DPC ハンドラー関数は、NDIS_RECEIVE_THROTTLE_PARAMETERS構造体を指します。 この構造体は、NDIS 6.20 以降で 受信側スロットル (RST) のパラメーターを指定します。
DPC ハンドラーへのエントリでは、NDIS_RECEIVE_THROTTLE_PARAMETERS構造体の MaxNblsToIndicate メンバーは、ミニポート ドライバーが DPC で示す必要がある NET_BUFFER_LIST 構造体の最大数を指定します。 この値がNDIS_INDICATE_ALL_NBLSされている場合、ミニポート ドライバーは、そのキューにあるすべてのNET_BUFFER_LIST構造体を示すことができます。
ミニポート ドライバーは、指定したNET_BUFFER_LIST構造体の最大数を処理した後、ミニポート ドライバーは、その受信キューにより多くのパケットを持つことができます。 この場合、ミニポート ドライバーは、MoreNblsPending メンバーを TRUE に設定する必要があります。DPC から戻る前に割り込みを再度有効にしないでください。 これは、行ベースの割り込みとメッセージ バイアス割り込みの両方に当てはまります。
ミニポート ドライバーは、MaxNblsToIndicate メンバーがNDIS_INDICATE_ALL_NBLSに設定されている場合、次のガイドラインに従う必要があります。
- 値NDIS_INDICATE_ALL_NBLSミニポート ドライバーが DPC 呼び出しで示すNET_BUFFER_LIST構造体の数を決定できます。 これにより、ミニポート ドライバーに次のオプションが提供されます。
- ミニポート ドライバーは、その受信キューから保留中のすべてのNET_BUFFER_LIST構造体を示すことができます。
-
ミニポート ドライバーは、DPC 呼び出し内で過剰な時間を費やすことを避けるために、ヒューリスティックに基づいて示すNET_BUFFER_LIST構造体の数を制限できます。
特に、ドライバーは DPC タイムアウトを回避するためにヒューリスティックを使用する必要があります。これは、ドライバーが DPC で費やすことができる最大時間です。 タイムアウト間隔の有効期限が切れると、システムでバグチェックが行われます。 Windows 7 以降では、DPC タイムアウトは 10 秒です。
- ミニポート ドライバーは、DPC から戻る前に、MoreNblsPending を FALSE を するように設定する必要があります。 ドライバーは、指定されていない受信キューに保留中のNET_BUFFER_LIST構造体があるかどうかに関係なく、これを行う必要があります。
ミニポート ドライバーが異なる割り込みソースを区別するために複数の MSI メッセージを使用している場合は、受信指示に関連付けられていない MSI メッセージのメンバー ReceiveThrottleParameters を無視する必要があります。 割り込みメッセージを受信する場合、ミニポート ドライバーは最大 MaxNblsToIndicate NET_BUFFER_LIST 構造体を示す必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.20 以降でサポートされています。 |
ヘッダー | ndis.h (Ndis.h を含む) |