次の方法で共有


送信および受信パスの改善

NDIS 6.0 の送受信パスは、パフォーマンスを向上させるために次のように改善されました。

  • NDIS 6.0 以降のすべてのドライバーの送受信関数は、1 つの関数呼び出しで NET_BUFFER_LIST 構造体とその関連する NET_BUFFER 構造体のリンクされたリストを転送できます。 この真のマルチパケット送受信操作のサポートにより、ドライバーが実行する必要がある関数呼び出しの数が大幅に減ります。

  • 送信または受信関数を呼び出すときに、DISPATCH_LEVELで実行されているドライバーは、その IRQL を NDIS に示すことができます。 NDIS は、その後、スタック内の他のドライバーの呼び出しを行うとき、これらのドライバーが IRQL をテストしたり、DISPATCH_LEVELに設定する必要はありません。 これにより、重要なコード セクションでの IRQL のテストと設定に関連するオーバーヘッドが軽減されます。

  • ドライバーは、ドライバー スタックの上下にパケットを渡すときに、ヘッダー情報に対応するNET_BUFFERデータ オフセットを調整する NDIS を要求できます。 パケットを送信するときに、ドライバーは、ドライバーのヘッダー情報に対応するために使用されるデータ領域を拡張できます。 受信パケットを示す場合、ドライバーは、ドライバーのヘッダー情報へのアクセスが完了した後、使用されるデータ領域を減らすことができます。 メモリの割り当てと解放やデータのコピーを行わずに、NET_BUFFER構造で使用されるデータ領域を動的に調整できるため、ネットワーク データの処理に必要なオーバーヘッドが軽減されます。

NDIS 6.0 での送受信データ処理の詳細については、「NET_BUFFER アーキテクチャ」を参照してください。