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 が MaxNblsToIndicate メンバーで要求した最大値または構造体を処理した後、ミニポート ドライバーにNET_BUFFER_LIST構造体が保留中であることを指定する値。
注釈
MiniportInterruptDPC と の ReceiveThrottleParameters パラメーター MiniportMessageInterruptDPC 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 以降でサポートされています。 |
Header | ndis.h (Ndis.h を含む) |