このページの本文へ

Windows Info 第129回

DOS時代から使われてきたネットワークドライバーの改良がついに進む

2018年06月10日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows 10のRSシリーズではネットワークドライバーの改良が行なわれている。

従来のNDISネットワークドライバーの動作環境。ネットワークアダプター(NIC。Network Interface Card)のドライバーはNDIS環境で動作してい

DOSやOS/2時代から使われてきたNDIS

 NDIS(Network Driver Interface Specification)は、MS-DOSの時代からマイクロソフトのOSで利用するネットワークデバイスドライバーの仕様の名称だ。最初はMS-DOSのネットワークで利用するイーサーネットカードのデバイスドライバーの仕様として、マイクロソフトと3Com社が開発した。

 NDISは、その後はWindowsで利用されたが、当時は、Windowsの下にMS-DOS環境があり、ドライバーの仕様を大きく変える必要がなかった。

 ちなみに本来ならNDIS 1.0となるべき最初の仕様は、単にNDISと呼ばれていた。また、ネットワークが普及しはじめたOS/2やWindows for Workgroups 3.1の時代には、仕様が拡張されNDIS 2.0となった。最初の大きな変化はWindows NTが登場したときである。Windows NTは、32bit CPUの仮想メモリや特権モードといった、近代的なプロセッサを使う、近代的なマルチタスクOSとして作られ、デバイスドライバーは、従来のMS-DOSに比べると複雑化した。

 マイクロソフトは、このWindows NT用にNDIS 3.0を開発した。Windows NT Device Driver Modelと呼ばれる最初の32bitデバイスドライバー仕様に基づくものだ。Windows 95以降、このNDIS 3.0をベースにNDIS 3.1、4.0、5.0~5.1と更新されていく。NDISは、デバイスドライバーの仕様であるとともにWindowsが用意するネットワーク関連のモジュール(たとえばプロトコルを処理するモジュール)の動作環境でもあるため、Windows側の機能が拡張されてもNDISのバージョンは上がっていく。

 たとえば、Windows XPでは、無線LANにおいて接続前に電波強度を表示するなどの機能が組み込まれた。また、携帯電話ネットワークの接続は、従来はモデム扱いで接続にはダイヤルアップ接続が使われていたが、これもWindows 8でNDISに取り込まれ、ネットワークとして接続できるようになった。

 さて、こうして発展してきたNDISだが、問題もあった。1つには、Windowsの標準的なデバイスドライバーフレームワークであるWDF(Windows Driver Foundation)との違いが大きく、標準的なデバイスドライバーの作り方と大きく異なっている。

 またNDIS側には、電力管理などの機能がなく、この部分では、WMFと連携する必要がある。WindowsのデバイスドライバーはWDFの導入により、「差分」のみを記述する構造となり、以前のWDM(Windows Driver Model)より開発が簡単になった。しかし、ネットワークドライバに関しては、NDIS仕様に従うため、そのメリットが得られなかった。

開発が面倒だったWindowsのネットワークドライバー
これまでよりは簡単になることが期待できる

 RS2(Windows10 Ver.1703)からマイクロソフトは、「NetAdapter Class extensions for WDF」(NetAdapter Cx)のプレビューを開始した。Class Extentionsとは、WDFのカーネル用ドライバークラスの拡張として組み込まれる機構である。

 一般にドライバーの「クラス」とは、特定の種類のデバイス、たとえばネットワークやストレージといったドライバーの「ひな形」を意味し、このひな形に対して、実際のハードウェアとの相違部分や足りない部分を追加することでデバイスドライバーを作成する。この方法では、ゼロからドライバーソフトウェアを書く必要がない。また、クラスで定義されている部分に対しては、信頼できるものとして別途検証やテストなどを念入りにする必要がないため、開発時の負担が減る。

 NetAdapter Cxは、ネットワークハードウェア(ネットワークアダプター)のドライバーの拡張機能として組み込まれ、この部分が従来のNDISスタックと通信することで、NDISプロトコルスタック側に変更を加えることなく、ネットワーク用のドライバーをWDFを使って記述できるようにするものだ。

 現在プレビューが進んでいるRS5(Windows 10 Ver.1809と予定されている)では、モバイルブロードバンドネットワークがこのNetAdapterCx対応となった。

 NetAdapterCxは、基本的にはWDFドライバーとして動作し、受信したパケットの処理は、クラスエクステンションを介してNDISスタックと接続する。また、USBやPCI Express用のバスドライバーの利用もWDFドライバーとして利用可能なため、全体として動作効率が高くなる。従来のNDISでは、NDISドライバーを管理しているNDISモジュール側を介して、USBなどのバス経由でアクセスしている。

 また、この方法では、プロトコルドライバーの部分には影響がなく、これまでずっと使われていたTCP/IPなどのプロトコル処理部分を変更する必要がない。ネットワークプロトコルは複雑で、さらに多数のメーカーの機器が関係するため、仕様書に厳密に対応することが求められると同時に、実情に合わせた実装も求められるという二律背反的な部分がある。

 このためにプロトコルスタックは長い年月をかけて完成されており、いきなりゼロから書き換えるというのは、かなりの困難が伴う。実際、テレビなどの家電にLinuxが組み込まれるというのは、すでにLinuxが実績のあるネットワークスタックを持っているからだ。

 Windowsでは、LTEや3Gなどのモバイルネットワークへの接続などを「モバイルブロードバンド(Mobile Broadband Network、MBN)」と呼ぶ。RS5では、このMBNで利用するUSBデバイス用のドライバーがNetAdapterCx対応のものに変更になった。インサイダープレビュービルド17655では、手動でドライバーを差し替える必要があったが、ビルド17677では自動的に差し替わるようになった。

 マイクロソフトによれば、NetAdapterCxにすることで、ドライバーが扱うデータの転送効率が高まるとしているが、今のところベンチマーク結果などが発表されているわけではなく、あくまでも論理的な話でしかない。それに、携帯電話ネットワークのように、通信状態が刻一刻と変化していく環境でユーザー側がベンチマークをするというのもかなりの困難を伴う。2つの測定で同じ環境とすることができないからだ。可能だとしたら長期間にわたって多数の測定を実施し、ネットワーク状態の影響を最小にするなどの手法が必要になる。

 とはいえ、今回のNetAdapter Cxにより、ユーザー側からみた「レガシー」がまた1つなくなったのも事実。実際には、内部にNDISプロトコルスタックは残るものの、ネットワークドライバーの開発は比較的容易になることが予想される。

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,253
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥937
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥841
9
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン