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 ドライバー フレームワーク (WDF) ライブラリを使用して、デバイス ドライバーの一部を簡単に書き込みできるようにすることもできます。 具体的には、カーネル モード ドライバーは、WDF の一部であるカーネル モード ドライバー フレームワーク (KMDF) を使用できます。 カーネル モード ドライバーの KMDF の詳細については、「カーネル モード ドライバー フレームワークの概要」を参照してください。 KMDF は WDM を置き換えないことに注意してください。 KMDF ドライバーを作成するには、WDM の多くを理解しておく必要があります。