Home / ... / 各種コンピュータシステム / Windows系システム / Windowsのデバイスドライバ

Windowsのデバイスドライバ




.作成中.

デバイスドライバとは

デバイスドライバとは

 OSとハードウェアの間に入り、ハードウェア製品によって異なる仕様や制御方法の差異を吸収する働きをするソフトウェアモジュール。

 Windowsでは、ドライバの最下層にハードウェアを抽象化する層であるHAL(
Hardware Abstract Layer : ハードウェア抽象化層)を設けて、386, 486, pentium, IA-32, IA-64, alpha, SPARC, EM64T などといった、プラットホームや技術の進歩によるCPUの違いを吸収できる様になっている。



デバイスドライバのタイプ

デバイスドライバのタイプ

まだ丸写し状態。
後日、整理する予定。
  • ハードウェアデバイスドライバ
     HAL関数経由で、物理デバイスやネットワークとの間でデータのやり取りを行う。
     バスドライバ、ヒューマンインターフェイスドライバ、マスストレージドライバなどがある。

  • ファイルシステムドライバ
     ファイルベースのI/O要求を受け取り、特定のデバイス向けのI/O要求に変換する。

  • ファイルシステムフィルタドライバ
     ディスクミラーリングや暗号化処理、I/O要求のインターセプトと独自のデータ追加処理などを行う。

  • ネットワークリダイレクタとサーバー
     ファイルシステムドライバの一種。
     ファイルシステムI/O要求をネットワーク上のマシンに送信したり(リダイレクタ)、ネットワーク側からの要求を受信する(サーバー)。

  • プロトコルドライバ
     TCP/IP、NetBEUI、IPX/SPXなどのネットワークプロトコルを実装する。

  • カーネルストリーミングフィルタドライバ
     相互に連携してデータストリームの信号処理(オーディオとビデオの記録と表示)を行う。




Windowsドライバモデル(WDM)

Windowsドライバモデル(WDM)

まだ丸写し状態。
後日、整理する予定。

  • バスドライバ
     バスコントローラ、アダプタ、ブリッジ、あるいは下位デバイスを持つすべてのデバイスにサービスを提供します。
     バスドライバは必 須ドライバで、通常、Microsoftが提供してくれます。
     システム上の個々のバスタイプ(PCI、PCMCIA、およびUSB)は、専用のバスドライ バを持っています。
     VMEbus、Multibus、およびFuturebusなどの新しいバス仕様用のドライバは、サードパーティ製のものが利用できる ようになっています。

  • ファンクションドライバ
     デバイス固有情報(レジスタなど)を一番よく知っている、メインとなるデバイスドライバ。
     デバイスを操作するためのインターフェイスを提供する。
     デバイスが直接操作され ないような場合(たとえば、SCSI PassThruのように、I/Oはバスドライバと何らかのバスフィルタドライバで行われるような実装形態)、ファンクションドライバは必須となります。

  • フィルタドライバ
     デバイス(あるいは、インストール済みデバイス)に機能を追加したり、他のドライバとの間で交換するI/O要求とその応答を修正する ために使用されます(ハードウェアリソースに関する不正確な情報を送信するデバイスの動作を修正するようなこともあります)。
     この種のドライバは必須のも のではなく、個数も制限されていません。
     たとえば、ファンクションドライバの上位や下位、およびバスドライバの上位におくことも可能です。
     通常は、デバイ スの製造会社あるいは独立ハードウェアベンダー(IHV)が提供しています。




ハードウェア・アブストラクション・レイヤ

ハードウェア・アブストラクション・レイヤ の概説

ハードウェア・アブストラクション・レイヤ( = ハードウェア抽象化レイヤ : Hardware Abstraction Layer : HAL )

 ハードウェアを抽象化(abstract)して、OSおよびアプリケーションに対してハードウェアの違いを隠し、OSおよびアプリの移植性を高めて開発効率を上げる事を目的とするシステムコンポーネント。

 使用しているハードウェアがアプリケーションから要求された機能を実装していなかった場合には、その機能をソフトウェアによりエミュレートする。

 HAL の実体は、%windir%\System32\hal.dll 。
 インストールの際に、各システムに対応した DLL( CD-ROM の i386\driver.cab\*.dll )を、 %windir%\System32\hal.dll へコピーしている。
 Windows 2000 の場合は以下の通り。
コンピュータの種類
CD-ROM の i386\driver.cab\*.dll
標準 PC
hal.dll
ACPI PC
halacpi.dll
ACPI ユニプロセッサ PC halaacpi.dll
ACPI マルチプロセッサ PC halmacpi.dll
Compaq SystemPro Multiprocessor or 100% Compatible
halsp.dll
MPS ユニプロセッサ PC
halapic.dll
MPS マルチプロセッサ PC
halmps.dll
SGI mp
halborg.dll
ACPI (Advanced Configuration and Power Interface)

  システムで現在使用中のHAL は、 デバイス マネージャで確認できる。
 デバイス ツリーの[コンピュータ]項目の左側にある[+]マークをクリックして表示される項目が、 現在使用中のHAL を表している。



参考資料

デバイスドライバ 参考資料


ハードウェア・アブストラクション・レイヤ 参考資料








     RSS of this page

     
     

    他のサイト: