ネットワークカードドライバー

Feb 09, 2024 伝言を残す

ドライバー機能層の存在により、プロトコル ドライバーとネットワーク カード ドライバーは互いに独立しており、ネットワーク デバイスの追加やネットワーク コンポーネントの拡張の複雑さが大幅に簡素化されます。 ネットワーク プロトコル スタックは主に、拡張されたネットワーク デバイス ドライバーをサポートします。
ENDデバイスドライバプログラムのロード
END デバイス ドライバーの読み込みには、主に END デバイス ドライバーとドライバー機能の抽象層の間の接続が含まれ、ネットワーク プロトコル スタックが END デバイスを制御できるようになります。 具体的なプロセスには、ネットワーク カードと PHY デバイスの初期化、ネットワーク カードと PHY デバイスの通信パラメータの構成などが含まれます。 ネットワーク カード制御構造用のスペースを割り当て、END-OBJ 構造を初期化します。END-OBJ 構造には、主にネットワーク カード制御構造とネットワーク プロトコル スタックに関連するパラメータ情報が含まれます。 ネットワークカードドライバーに対応するパラメーター文字列を分析して処理します。 受信したデータを確実に保存するために、データを受信するためのスペースを割り当てます。 END-OBJ 構造体の NET-FUNCS パラメータを構成して、ネットワーク カード ドライバとネットワーク プロトコル スタック間の接続を実装します。
開始ENDデバイス
END デバイスの起動プロセスには、主に割り込み処理プログラムのフックとネットワーク カード割り込みの有効化が含まれます。 ネットワーク カード デバイスのデータ処理方法は、割り込みとポーリングの 2 つの動作モードに分類できます。 END デバイスの起動処理では、受信データ、送信データともに割り込みモードに設定され、データ受信用、送信用の割り込み処理プログラムが付加されます。 最後に、ネットワーク カードの割り込みを有効にし、割り込みの送受信によって END デバイスの起動を完了できます。
ネットワークパケットの受信
ネットワーク パケットを受信する場合、オペレーティング システムのネットワーク プロトコル スタックでは、ネットワーク カード ドライバーがネットワーク パケットを処理する必要はありません。 ネットワーク カード デバイスがデータを受信すると、受信割り込みが生成されます。 受信割り込み処理プログラムでは、netJobAdd 関数を呼び出して、ネットワーク カード デバイスが受信したデータをドライバー関数抽象化層に渡すタスク プログラムを起動します。 ネットワーク プロトコル スタックは、ドライバー機能抽象化層の受信機能を通じてネットワーク データ パケットを取得し、対応するデータ処理を実行します。 ここでnetJobAdd関数を使用することで、割り込み受信処理時間を短縮し、ネットワークデータ受信能力を向上させることができます。
ネットワークパケットの送信
ネットワーク パケットの送信では、ネットワーク プロトコル スタックがデータを送信するときに、データをバッファーに配置し、ドライバー抽象化層の送信関数を呼び出すことによって、バッファーからネットワーク カード デバイスにデータを送信します。 データを受信した後、ネットワーク カード デバイスはデータを送信バッファに置き、データが送信されるのを待ちます。