|
仮想デバイスドライバ (Virtual Device Driver, VxD)とはWindows 3.xからWindows 9x系までにおいて用いられたデバイスドライバの形式である。VxDとは仮想デバイスドライバの多くがV''デバイス''D(例えばマウスのドライバならVMOUSEDという具合)のように名付けられていたことに由来する。 VxDは次のような経緯で誕生した。そもそもは、シングルタスクだったDOSアプリケーションがハードウェアデバイスを独占的に使用していたことによる。そのため、Windows/386からWindows上で複数のDOSアプリケーションを実行可能となるにあたって、そのままでは複数のDOSアプリケーション同士でデバイスの使用要求が衝突する可能性が懸念された。 そこで、マイクロソフトは各DOSアプリケーションを仮想DOSマシン (VDM) と呼ばれる仮想機械上で動作することにした。仮想機械内ではデバイスも仮想化され、DOSアプリケーションがデバイスだと思って操作しているものは、実際のデバイスではない。代わって相手をするのが仮想デバイスドライバである。仮想デバイスドライバは各仮想マシンの要求を調停して実際のハードウェアを操作する。この「仮想デバイスを提供する」という点から仮想デバイスドライバと呼ばれるのである。仮想機械のインターフェイスとして16ビットコードと32ビットコードの混在が必要になるため、Linear Executable形式のファイルとなっている。 なお、DOSアプリケーションや16ビットWindowsアプリケーションばかりでなく、Win32アプリケーションでもInt 21hソフトウェア割り込みなど一部の仮想デバイスの操作は可能である。手順としては、CreateFile関数でVxDオブジェクトを作成し、得られたハンドルを基にDeviceIoControl関数を呼び出す。そのような例は、95でディスクボリュームをオープンする方法 やOSR2上の Int 21 読み取り/書き込みトラックが失敗する などに散見される。 Windows NT系はVxDに対応していない。Windows 2000やWindows XPではWindows Driver Model (WDM) が用いられている。Windows Vistaでは、新しくWindows Driver Foundation (WDF) も導入されている。 == 外部リンク == Morry's Un'Gramming Page (既に閉鎖されているがインターネット・アーカイブ から参照可能) 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「仮想デバイスドライバ」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 VxD 」があります。 スポンサード リンク
|