Windows 8 マシン上のプリンターを、VirtualBox 経由で同じマシン上で実行されている FreeDOS インスタンスと共有する必要があるシナリオがあります。
当初は、VMware や Parallels に似たプリンタ共有機能があることを期待していましたが、実際には「便利な」オプションは見つかりませんでした。このプリンタは、Windows 自体から印刷するために頻繁に使用されますが、この古き良き DOS プログラムも時々印刷できる必要があります。
おそらく最善の選択肢は、Windows でプリンターのネットワーク共有を有効にし、ネットワーク プリンターを何らかの方法で FreeDOS インスタンスの仮想パラレル ポートに接続してみることだと考えていました。
FreeDOS インスタンスでは TCP/IP ネットワークは問題なく動作していますが、共有プリンタ ポートを何らかの仮想 lpt に取得することが問題になると思います。
頭に浮かんだもう 1 つの考えは、Windows 側でソフトウェアを入手して、DOS 用のより汎用的な入力を提供する必要があるかもしれないということです。これにより、より重いドライバー処理を必要とせずに、単純な DOS アプリの文字出力が可能になります。
これを実現する方法について何かアイデアはありますか?
答え1
私は FreeDOS ネットワークに詳しくありませんが、共有ネットワーク ドライブに対して「net use」を実行できる場合は、次のことも実行できるはずです。
Net use lpt1 \\server\printershare
ただし、MS-DOS アプリケーションはネットワーク プリンタへの印刷をサポートしている必要があります。MS
-DOS アプリケーションが LPT ハードウェア チップを直接操作しようとすると、これは機能しません。LPT1 をファイルとしてアクセスする場合は機能します。
このため、Windows 側でドライバーなどを提供する必要はありません。DOS クライアントから受信した生のバイトをそのままプリンターに直接渡します。(または、Windows でプリンターを「汎用/テキストのみ」プリンターとして設定して、Windows が印刷ジョブに一切触れないようにすることもできます。)
DOS アプリケーションがプリンタ ハードウェアを独自に制御する必要がある場合、これを機能させる唯一の方法は (AFAIK)、ホスト システムに実際のパラレル プリンタを用意し、そのパラレル ポートを FreeDOS VM に直接マップすることです (ただし、同時にホスト システムから使用することはできません)。