seclan のほえほえルーム

| |

KernelEx: Windows 98 と Windows ME のような Win9x 系列で Windows NT や XP のような WinNT 系列のプログラムを動作させる拡張ライブラリ

・
2010/03/07 []

通常、Windows NT や XP 向けといった WinNT 系列向けに開発されたプログラムは、Windows 98 や Windows ME のような Win9x 系列で動作させることは難しいです。難しい理由はいくつかありますが、その一つは、WinNT 系列では、OS の標準文字コードとして 16bit の文字列を使用しており、API がいわゆる W 系列の Windows API 呼び出しをしていることが挙げられます。Win9x 系列では、これら W 系列の Windows API はごく一部しか実装されておらず、結果として、WinNT 向けのアプリケーションは、Win9x では動作しないということになります。

Microsoft は、過去にこの状態を打破するために、UnicoWS (Unicode for Windows 95/98/Me Systems) というものを発表しています。これは、UNICOWS.DLL とその手助けライブラリからなっており、UNICOWS.DLL からは、W 系列の関数が公開されています。そして、その W 系列の関数が呼ばれると内部で ANSI (MBCS) に変換し、Win9x 標準の A 系列の API を呼び出す動作をします。手助けライブラリでは、WinNT の場合は、変換せずに直接 WinNT の W 系列の API を呼び出し、Win9x の場合は UNICOWS.DLL の変換機能を使うというように動作します。このライブラリをアプリケーションとリンクし、OS の API との間に一皮かませることで、うまく動作させようという方法です。いくつかのアプリケーションで実際これらは使用されていました。

しかし、最近では Microsoft の Win9x の保守終了と共に、対応を打ち切るアプリケーションも増えてきて、Win9x で動作しないアプリケーションも増えてきました。もし Win9x で動作しないという理由が W 系列の関数がないと言う理由だけならば、Win9x のシステム側でそれを拡張してやれば、動作する可能性が増えます。KernelEx は Win9x のシステム側から、UnicoWS をリンクしてやることで、UNICOWS.DLL をアプリケーションが明示的にリンクすることなく、WinNT 系列のプログラムが実行できるようにします。現在では、UnicoWS 以外にも、WinNT 系列には存在するが、Win9x 系列には存在しない関数のいくつかも実行できるようになっています。

ダウンロードは、KernelEx からすることができます。ただし、このライブラリは Win9x のカーネルに少々の変更を加えるので、危険なライブラリです。二度と起動しなくなり、再インストールする羽目になる可能性もあります。導入にあたっては、Windows Update などの更新は先にすべて済ませ、最後に導入する必要があります。また、システム更新するときなどは、一度アンインストールしないと予測不可能な事態を招くことが考えられます。



by seclan

関連


| |

 

配信

5.31 msec