登録会員限定記事 現在はどなたでも閲覧可能です

ネットワークアダプターのデバイスドライバー開発が容易に

 内部的な改良では、これまで使われてきたネットワークインタフェースのデバイスドライバーが大きく変更される。

 Windowsでは、長い間NDIS(Network Driver Interface Specification)と呼ばれる形式のデバイスドライバーが使われてきた。NDISはMS-DOSや、Windowsの最初のネットワーク対応バージョンであるWindows for Workgroups 3.1から続くデバイスドライバー形式。Windowsで標準的に使われるデバイスドライバー形式であるWDF(Windows Driver Frameworks)と構造が異なり、ドライバーレイヤー間でやり取りするデータ(構造体)も違っている。しかしNDISドライバーは、TCP/IPなどのWindowsのネットワークスタックと直接接続しているため、ネットワークアダプターのドライバーだけを単純に形式変更することができなかった。

 RS5ではこうした問題に対処するため、WDFに準拠したドライバー形式でNDISによるデータのやり取りをプロトコルスタック側と可能にする「NetAdapter Class Extension」(NetAdapter Cx)という機構を用意した。この機構に対応させるためにネットワークアダプターのドライバーを変更する必要はあるが、電力管理やプラグ&プレーなどの標準的なデバイス管理に関してはWDFの機能を利用するため、安定して実行可能になる(従来はデバイスドライバー側の実装に左右されていた)。

 なお、USBなどの汎用バスを利用するネットワークデバイスは、その多くがマイクロソフトが開発したデバイスドライバー(俗にボックスドライバーと言う)になっているため、サードパーティーが別途デバイスドライバーを開発する必要はなく、ユーザーもドライバーを入手する必要がない。ただし、LTEなど携帯電話ネットワーク用のデバイスドライバーは、ハードウエアメーカーや事業者からデバイスドライバーが提供されていることがあり、RS5のタイミングでデバイスドライバーの更新が必要になる可能性がある。

ネットワークアダプターのデバイスドライバーは、これまでNDIS形式が使われていた。これはTCP/IPなどのネットワークスタックがすべてこの構造を前提に作られているからだ
(出所:マイクロソフトが公開している「NetAdapter Extension for WDFビデオ」より引用)
[画像のクリックで拡大表示]
RS5では、WDFドライバーからNetAdapter Class Extension経由でNDISスタックへと接続できるようになる
(出所:マイクロソフトが公開している「NetAdapter Extension for WDFビデオ」より引用)
[画像のクリックで拡大表示]

 話は変わるが、RS5ではTCP/IPの輻輳制御アルゴリズムが、マイクロソフトが開発した「Compound TCP」からLinuxなどで採用される「CUBIC TCP」へと切り替わっている。CUBIC TCPはRS2で搭載されたが、デフォルトではなかった。CUBIC TCPは、Compound TCPよりも高速とされる。これにより、インターネット利用時のデータ転送速度が向上する可能性がある。