ユーザー モード NetAdapterCx

Windows 11 バージョン 24H2 以降、NetAdapterCx を使用すると、ユーザー モード ドライバー フレームワーク (UMDF) ネットワーク アダプター ドライバーを作成できます。 NetAdapterCx の UMDF API は KMDF バージョンと一致しているため、コードをほとんど変更せずに KMDF ベースのクライアント ドライバーを UMDF に変換できます。

ユーザー モード NetAdapterCx ドライバーのメリット

UMDF NetAdapterCx ドライバーを作成することには、以下のようなメリットがあります。

  1. システムの安定性向上: ユーザー モード ドライバーは、そのプロセスのアドレス空間にのみアクセスできます。 クラッシュしても、システムには影響を与えません。 ドライバーは自動的に再起動し、接続をすばやく復元できます。

  2. セキュリティの向上: ユーザー モード アプリケーションは、重要なシステム リソースに直接アクセスしたり、特権命令を実行したりすることはできません。 そのため、ドライバーのセキュリティ違反によってカーネルの整合性が損なわれることはありません。

  3. 開発の簡略化: ユーザー モード ドライバーによって、開発者のワークフローが強化されます。 クラッシュ後にテスト コンピューターが再起動するのを待つ必要はありません。また、開発とテストに同じコンピューターを使用することで、デプロイを迅速に行うことができます。

  4. イノベーションと柔軟性の向上: カーネル モード ドライバー開発の制約により、多くの場合、イノベーションが制限されます。 ユーザー モード ドライバーは、より柔軟な環境を提供します。開発者は、互換性がない可能性があったり、カーネル モードでの実装が困難な可能性がある、高度な機能やツールを使用することができます。

ユーザー モード NetAdapterCx の制限事項

現在のところ、以下の機能は、KMDF ベースの NetAdapterCx ドライバーでのみ使用できます。

ダイレクト メモリ アクセス (DMA)

DMA はまだユーザー モードで使用することができません。

UMDF ドライバーは、NET_ADAPTER_RX_CAPABILITIESDmaCapabilities メンバーを設定し、NET_ADAPTER_TX_CAPABILITIESNULL に設定する必要があります。

クライアント側バッファーの割り当て

クライアント側のネットワーク データ バッファー管理は、ユーザー モードでは使用できません。 UMDF NetAdapterCx ドライバーは、送信および受信データ パスのデータ バッファーを割り当てるためにシステムに依存する必要があります。

UMDF ドライバーは、NET_ADAPTER_RX_CAPABILITIES 構造を使用して、そのハードウェア データ バッファー機能をアドバタイズする場合、以下の処理を実行する必要があります。

KMDF NetAdapterCx ドライバーを UMDF に変換する

ユーザー モードで動作するには、クライアント ドライバーは UMDF の一部であるコア WDF API のみ使用する必要があります。 たとえば、クライアント ドライバーでは、KMDF ドライバー専用の API を使用しないでください。

KMDF NetAdapterCx ドライバーを UMDF に変換するには、「KMDF ドライバーを UMDF 2 ドライバーに変換する方法」の手順に従います。

NetAdapterCx の UMDF バージョンと KMDF バージョンは、同じメジャー バージョン番号を共有しています。