[PR]テレビ番組表
今夜の番組チェック

English | Japanese Author: Ken Kato
Mail: chitchat<DOT>vdk<AT>gmail<DOT>com

仮想な背中


仮想な背中 > その他いろいろ

Windows 3.1 用 SVGA ドライバパッチ

SVGA256.DRV にパッチを当てて VMware で動作するようにするものです。 SVGA256.DRV は Windows 3.x 用の 256 色ビデオドライバですが、そのまま では特定のビデオカードでしか動作しません。本来は Windows 3.11 や WfW 3.11 に含まれているものですが、インターネットで見つけることが できるはずです ("SVGA.EXE" を検索)。日本語版 Win 3.1 でも問題なく 動作します。

DOWNLOAD
win31svga-060411.zip

制限・注意点もいろいろありますが(ZIP 内の README を参照)、 640x480/16 画面を思えば大進歩でしょう。また、激速というわけにもいきませんが、 VGA よりもかなり高速でレスポンスもよいです。


XP の壁紙を Windows 3.11 で。
合成ではありません。念のため ^^;
(クリックすると拡大表示します)。

このパッチは Japheth 氏の SVGApatch (http://www.japheth.de/) を元に作成しました。 彼のバージョンは汎用 VESA 互換といった感じのものです。 それに VMware 用の調整・VMware 特有の問題の修正などを加えたのがこの パッチです。Japheth 氏に感謝。

TOP

BeOS 5 PE ゲスト設定メモ

TOP

Windows ホスト用 mprapi.dll ラッパー

私の環境では VMware Workstation 4.5(多分)以降、VMware の起動にかなり時間が かかる(30秒から1分)ようになっていました。また、仮想ネットワーク管理ダイアログ でアダプタ名がまともに表示されないのも少々気になっていました (スクリーンショット)。

つい最近になって原因が判明しました: VMware がアダプタ名を取得するために 使用している MprConfigGetFriendlyName() Win32 API が私の環境(日本語版 Windows 2000 Professional + SP4)では常にタイムアウトしており、これが起動の遅延と アダプタ名の乱れの両方を引き起こしていました。

Microsoftのドキュメントにはこの API が Windows Server 2008、Windows Server 2003 または Windows 2000 Server を必要とする、と書かれているので、私のマシンで動かないのも 無理はないと思いますが。

VMware 自体にパッチを当てたりせずにこの問題を回避するために、VMware の API 呼び出し を横取りするためのラッパーDLLを作成しました。

もし同じ問題に行き当たっている人がいたら(Windows 2000 Professional を使っていれば 可能性は高いと思いますが)、ラッパー版の mprapi.dll を VMware インストールディレクトリ (例えば C:\Program Files\VMware\VMware Workstation)に入れてみてください。

技術的な事柄に興味がある方のために少々解説します。 しくみは非常に単純です:

  1. ラッパー版の mprapi.dll が VMware 実行ファイルと同じディレクトリにあるため、 VMware 起動時にシステムディレクトリの mprapi.dll ではなくラッパー版がロードされます (Windows 2000 の DLL 検索順序がそうなっているため)。
  2. VMware が MprConfigGetFriendlyName() 以外の mprapi.dll API を呼び出した場合、 ラッパーDLLはそのままシステムDLLを呼び出します。
  3. VMware が MprConfigGetFriendlyName() を呼び出した場合、ラッパーDLLはアダプタ名を レジストリから検索して、結果を VMware に返却します。

注意: Windows XP SP2 では DLL 検索順序が変更されているため、この方法が 使えない可能性があります(Windows XP でも同様の問題が発生していればの話ですが)。 詳細は以下の DLL 検索順序に関する Microsoft のドキュメントを参照してください:

TOP