このトピックでは、NDIS 6.x ミニポート ドライバーを NDIS 6.20 に移植するために必要な変更について説明します。
NDIS 6.20 は、以前の NDIS バージョンとの下位互換性を維持しています。 下位互換性の詳細については、「NDIS 6.20 下位互換性 」を参照してください。
NDIS 6.20 環境に対応するようにミニポート ドライバーを更新するには、NDIS 6.x ミニポート ドライバーを次のように変更する必要があります。
ビルド環境
プリプロセッサ定義 NDIS60_MINIPORT_DRIVER または NDIS61_MINIPORT_DRIVER を NDIS620_MINIPORT_DRIVER に置き換えます。
廃止されたインターフェイスを NDIS 6.20 バージョンに置き換えます。 古いインターフェイスの詳細については、「NDIS 6.20 の廃止されたインターフェイス」を参照してください。
64 以上のプロセッサをサポートするように、次のインターフェイスを更新します。
- 受信側 scaling (RSS)
- プロセッサ情報デバイス ドライバー インターフェイス
- リソース割り当て
- ロックの読み取りと書き込み
64 以上のプロセッサのサポートの詳細については、「NDIS 6.20 での 64 以上のプロセッサのサポート」を参照してください。
NdisMRegisterMiniportDriver 関数に渡す NDIS_MINIPORT_DRIVER_CHARACTERISTICS 構造体の MajorNdisVersion および MinorNdisVersion メンバーで NDIS バージョンを 6.20 に設定します。
NDIS_MINIPORT_DRIVER_CHARACTERISTICS 構造体の MajorDriverVersion メンバーと MinorDriverVersion メンバーのミニポート ドライバーのバージョンを、ドライバー固有の適切な値に設定します。
NDIS_MINIPORT_DRIVER_CHARACTERISTICS 構造体に直接 OID 要求エントリ ポイントを定義します。 直接 OID 要求インターフェイスのサポートは、NDIS 6.1 ドライバーでは省略可能でしたが、NDIS 6.20 ドライバーでは必須です。 ミニポート ドライバー ダイレクト OID 要求インターフェイスの詳細については、「ミニポート アダプター OID 要求」を参照してください。
ミニポート アダプター機能のアドバタイズ インターフェイスの最新バージョンを使用します。 次のインターフェイスは、機能が更新されています。
- 電源管理
- 受信側 scaling (RSS)
- ハードウェア アシスト (VMQ)
これらの構造体の更新バージョンを使用します。
- NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES
- NDIS_RESTART_GENERAL_ATTRIBUTES
- NDIS_RECEIVE_SCALE_PARAMETERS
- NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES
NDIS 構造体のバージョン情報については、「NDIS バージョン情報の指定」を参照してください。
NDIS 6.20 ドライバーは、受信割り込み処理で受信側スロットル (RST) をサポートする必要があります。 MiniportInterruptDPC および MiniportMessageInterruptDPC DPC ハンドラー関数の ReceiveThrottleParameters パラメーターは、NDIS_RECEIVE_THROTTLE_PARAMETERS 構造体を指します。 遅延プロシージャ呼び出し (DPC) ハンドラーへのエントリー時、NDIS_RECEIVE_THROTTLE_PARAMETERS 構造体の MaxNblsToIndicate メンバーは、ミニポート ドライバーが DPC で示す必要があるNET_BUFFER_LIST 構造体の最大数を指定します。 RST の詳細については、「NDIS 6.20 の受信側スロットル」を参照してください。
NET_BUFFER 構造体の更新バージョンを使用します。
必要に応じて、仮想マシン キュー (VMQ) インターフェイスをサポートします。 VMQ の詳細については、「NDIS 6.20 の仮想マシン キュー (VMQ) を参照してください。