WDM ドライバーの記述

このセクションでは、Microsoft Windows Driver Model (WDM) アーキテクチャについて説明します。 このアーキテクチャは、以前のWindows NTデバイス ドライバーの機能強化として Windows 2000 で開始されました。

メモWindows 2000 より前のWindows NT ベースのオペレーティング システムのバージョンのドライバーはサポートされていないため、これらのドライバーを更新する必要があります。 WDM アーキテクチャでは、非Windows NT ベースのオペレーティング システム (Windows 98 など) のドライバーはサポートされていないため、このようなドライバーを書き換える必要があります。

このセクションは、次の 3 つの部分に分かれています。

  • Windows ドライバー モデル では、WDM ドライバーの種類、デバイスの構成、WDM のバージョン管理など、Windows ドライバー モデル (WDM) について説明します。

  • デバイス オブジェクトとデバイス スタックでは、 デバイス オブジェクトとデバイス スタックについて説明します。 このセクションには、物理デバイス オブジェクト (PDO)、機能デバイス オブジェクト (FDO)、およびフィルター デバイス オブジェクト (フィルター DOs) に関する情報が含まれています。 ドライバーは、多くの場合、連携して動作する一連のデバイス オブジェクトから構築されます。 このデバイス オブジェクトのセットは 、スタックと呼ばれます。 スタックは、ドライバーとの間の情報フローと、ドライバーのさまざまな部分が内部で通信する方法を理解するのに役立ちます。

  • カーネル モード ドライバー コンポーネント では、機能ドライバーを持つには実装する必要があるルーチンと、省略可能なルーチンについて説明します。

    デバイス ドライバーは、オペレーティング システムに統合する必要があるソフトウェア コードのセットです。 この統合を完了するには、オペレーティング システムからの呼び出しを処理するハンドラー ルーチンのセットをドライバーに記述する必要があります。 これらのルーチンは単純な関数呼び出しにすることができますが、その多くは、ドライバーとオペレーティング システム間の通信を容易にする I/O 要求パケット (IRP) の処理を実装します。

メモ WDM ドライバーは、Windows Driver Frameworks (WDF) ライブラリを使用して、デバイス ドライバーの一部を記述しやすくすることもできます。 具体的には、カーネル モード ドライバーは、WDF の一部である Kernel-Mode Driver Framework (KMDF) を使用できます。 カーネル モード ドライバーの KMDF の詳細については、「 カーネル モード ドライバー フレームワークの概要」を参照してください。 KMDF では WDM は置き換えられません。 KMDF ドライバーを作成するには、WDM の多くの部分を理解しておく必要があります。