Microsoft(R) Visual Basic(R) Programming System for Windows(R) Version 2.0(以下 Visual Basic for Windows 2.0)
この記事は、以前は次の ID で公開されていました: JP402575
概要
この資料は Visual Basic for Windows 2.0 からポートの制御やプリンタに制御
コードを送ることができない理由について記述したものです。
詳細
Microsoft(R) Windows(R) で動作しているアプリケーションからプリンタや拡張
ボードといった周辺機器を制御する場合、必ず Windows 用デバイス ドライバを
経由しておこなわなければなりません。
MS-DOS(R) で動作するアプリケーションでは許されていた、I/O ポートに対して
直接的な入出力を行う方法やプリンタに対する制御コードの出力は以下の理由に
より Windows では許されません。
Windows は " デバイスに依存しないノン プリエンティブなマルチタスクの GUI
環境" であり、協調型擬似マルチタスク オペレーティング システムです。特定
の周辺機器に対して、複数のアプリケーションがアクセスする可能性があるた
め、プロセス間の排他制御を必要とします。このため、各アプリケーションから
の I/O ポートに対しての直接的な入出力は許されません。必ず、個々のデバイ
スに対してマルチタスクを考慮した Windows 用デバイス ドライバ経由で制御
する必要があります。
Windows はその上で動作するアプリケーションが、パソコン本体のハードウェ
ア アーキテクチャに依存しないように設計されたオペレーティング システム
です。このためハードウェアの構造に依存する I/O ポート等にアクセスする
アプリケーションを作成することは許されません。
Windows はその上で動作するアプリケーションが、パソコン本体に接続されて
いる周辺機器に依存しないように設計されたオペレーティング システムで
す。このためアプリケーションはプリンタ固有の制御コードをプリンタに対
して直接送ることはできません。個々のアプリケーションから Windows の
プリンタ ドライバへの出力は GDI コマンドでおこなわれます。Windows の
プリンタ ドライバはプリンタに依存しない GDI コマンドを、プリンタ固有
の制御コードへ変換した後にプリンタへの出力をおこないます。
Windows では共有資源である各周辺機器等を制御する場合には Windows 用デバイス
ドライバが必要になります。一般的に Windows 用デバイス ドライバは周辺機器の
開発元が提供しています。もし、周辺機器の開発元が Windows 用デバイス ドライ
バを供給していない場合は、周辺機器の仕様書等に従って Windows 用デバイス
ドライバを設計、作成しなければなりません。
Windows 用デバイス ドライバを作成するために必要な製品
Windows 用デバイス ドライバが開発可能な言語製品 (C 言語、アセンブラなど)
Microsoft(R) Windows(R) Software Development Kit (以下 Windows SDK)
Microsoft(R) Windows(R) Device driver Development Kit (以下 Windows DDK)