VxDは、Microsoft Windows/386 2.x、 Windows 3.xの 386 拡張モード、Windows 9x、およびある程度Novell DOS 7、OpenDOS 7.01、DR-DOS 7.02 (およびそれ以降) のマルチタスク ( )でも使用されているデバイスドライバ モデルです。[1] VxD は、カーネルのメモリとすべての実行中のプロセスにアクセスできるほか、ハードウェアに直接アクセスできます。Windows 98以降、Windows Driver Model はドライバを作成するための推奨ドライバ モデルになりましたが、 Windows Meまでは下位互換性のために VxD ドライバ モデルもサポートされていました。
TASKMGR
名前とデザイン
「VxD」という名前は「仮想 xxx ドライバ」の略語で、「xxx」はハードウェア デバイスのクラスです。これは、Windows 3.xvxxxd.386ではほとんどのドライバのファイル名が 形式だったことに由来しています。例としては、vjoyd.386 (ジョイスティック) や vmm.386 (メモリ マネージャ) などがあります。Windows 3.x の VxD は通常ファイル名拡張子を持ちますが、Windows 9x の VxD は を持ちます。Windows 3.x 用に作成された VxD は Windows 9x でも使用できますが、その逆はできません。
.386.vxd
歴史
Windows が登場する前は、DOSアプリケーションはさまざまなハードウェアと直接通信するか (割り込みへの応答、デバイス メモリの読み取りと書き込みなど)、DOSデバイス ドライバーを経由していました。DOS はマルチタスクではなかったため、各アプリケーションは実行中にハードウェアを排他的かつ完全に制御していました。Windows アプリケーションはハードウェアと直接通信することはあまりありませんが、それが Windows ドライバーの唯一の方法でした。そして、Windows 3.x の実際の標準モード では現在でもその方法が採用されています。
Windows/386以降では、各 DOS アプリケーションをそれぞれの仮想マシン内で実行することで、複数の DOS アプリケーションを同時に実行できるようになりました。これらの仮想マシン間で物理リソースを共有するために、Microsoft は仮想デバイス ドライバーを導入しました。これらのドライバーは、ハードウェアへの呼び出しをインターセプトすることで、物理リソースの使用の競合に関する問題を解決しました。マシン ポートは実際のデバイスを表すのではなく、オペレーティング システムによって管理できる「仮想」デバイスを表します。
Windows 9xでは、VxD はLinear Executable形式のファイルです。
陳腐化
Windows 98 ではWindows Driver Model (WDM)が導入されましたが、Windows 98 および Windows Me では VxD デバイス ドライバーを使用できます。Windows 9x で WDM ドライバーの代わりに VxD ドライバーを使用すると、休止状態などの高度なACPI状態が使用できなくなる可能性があります。
VxD は、 Windows NTまたはその派生製品では使用できません。Windows NT ベースのオペレーティング システム3.1から4.0では、専用に作成されたドライバーを使用する必要があります。これらのドライバーは、Windows NT ドライバー モデルとも呼ばれます。Windows 2000以降、Windows NT ベースのオペレーティング システムでは、Windows 98 の Windows ドライバー モデルが採用されています。
VxD は、Windows NT の「 DOS ボックス」で直接 I/O をエミュレートする方法を提供する、同様の名前のNTVDM固有の「VDD」(仮想デバイス ドライバー) と混同しないでください。NTVDM VDD は通常の32 ビットユーザーモードDLLとして実行され、16 ビットプログラムに代わって必要な I/O をエミュレートするにはWin32 API (または別の WDM ドライバー)に依存する必要があります。
参照
参考文献
- ^ ポール、マティアス R. (1997-07-30)。 NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。 MPDOSTIP、リリース 157 (ドイツ語) (第 3 版)。 2017-09-10 のオリジナルからアーカイブ。2014 年 9 月 6 日に取得。(注: NWDOSTIP.TXT はNovell DOS 7およびOpenDOS 7.01に関する包括的な作業であり、多くの文書化されていない機能と内部の説明が含まれています。これは、2001 年まで維持され、当時多くのサイトで配布されていた、著者のさらに大規模な MPDOSTIP.ZIP コレクションの一部です。提供されているリンクは、HTML に変換された NWDOSTIP.TXT ファイルの古いバージョンを指しています。)
さらに読む
- シュルマン、アンドリュー (1994 年 11 月)。Unauthorized Windows 95 - 開発者リソース キット (第 1 版)。米国カリフォルニア州フォスター シティ: John Wiley & Sons, Inc. ISBN 1-56884-305-4。
- シュルマン、アンドリュー、ブラウン、ラルフ D. 、マクシー、デビッド、ミシェルズ、レイモンド J.、カイル、ジム (1994) [1993 年 11 月]。『Undocumented DOS: 予約済みの MS-DOS 関数とデータ構造のプログラマ ガイド - MS-DOS 6、Novell DOS、Windows 3.1 に対応 (第 2 版)』。マサチューセッツ州レディング: Addison Wesley。ISBN 0-201-63287-X。(xviii+856+vi ページ、3.5 インチフロッピー) 正誤表: [1][2]
- Microsoft Windows 95 プログラマーズ ガイド: Microsoft Windows 開発チームによる Windowsプログラミングの主要トピック。テクニカル リファレンス (第 1 版)。米国ワシントン州レドモンド: Microsoft Press。1995-07-01。ISBN 1-55615-834-3. 2016年5月26日閲覧。
- Oney, Walter (1995)。Systems Programming for Windows 95 (第 1 版)。ワシントン州レドモンド、米国: Microsoft Press。ISBN 1-55615-949-8。
- ピエトレック、マット(1995 年 11 月)。Windows 95 システム プログラミングの秘密。The Secrets Series (第 1 版)。John Wiley & Sons, Inc. ISBN 1-56884-318-6. 2016年5月26日閲覧。
- Hazzah, Karen (1997)。 『 Windows VxD とデバイス ドライバーの記述 - 仮想デバイス ドライバーのプログラミング秘訣』 (第 2 刷、第 2 版)。ローレンス、カンザス州、米国: Miller Freeman, Inc. ISBN 0-87930-438-3。
