ネットワーク ドライバーの移植性
NDIS ドライバーは、Microsoft Windows オペレーティング システムをサポートするすべてのプラットフォームで簡単に移植できるように記述する必要があります。 一般に、あるハードウェア プラットフォームから別のハードウェア プラットフォームへの移植には、システム互換コンパイラを使用した再コンパイルのみが必要です。
NDIS ドライバーを記述するときは、次のガイドラインに従います。
オペレーティング システム固有の関数の呼び出しは避けてください。 代わりに、NDIS と同等の関数を使用します。 NDIS は、ドライバーを記述するためのサポート関数の豊富なセットをエクスポートし、これらのサポート関数を呼び出す場合は、NDIS をサポートする Microsoft オペレーティング システム間でコードを移植できます。
C (具体的には ANSI C 規格) でドライバーを記述します。 他のシステム互換コンパイラでサポートされていない言語機能は使用しないでください。 ANSI C 規格で "実装定義" と指定されている機能は使用しないでください。
プラットフォームによってサイズとレイアウトが異なるデータ型への依存関係を回避します。 たとえば、NDIS で提供される関数の代わりに C ランタイム ライブラリ関数を呼び出すドライバー コードを記述しないでください。
カーネル モードでは浮動小数点演算を使用しないでください。 このような演算を試みると、致命的なエラーが発生します。
#ifdef ステートメントと #endif ステートメントを使用して、プラットフォーム固有の機能をサポートするために使用されるコードをカプセル化します。