インサイド Windows はとても面白い WinRing0 1.1.0
10 月 31

Visual C++ Express Edition あれこれ (NyaRuRuの日記)

を「激しく同意」しながら読んでいたのですが、気になる一文が・・・

DllMain の中で使える API は kernel32.dll が公開するもののみだよと言われて首をかしげる 

とりあえず、首をかしげながら「DllMain」で検索したところ・・・

DllMain (MSDN)

なるほど。
というわけで、SysInfo.dll も WinRing0.dll も問題大アリでした。DllMain でデバイスドライバのロードはしちゃいけなかったんですねぇ。kernel32.dll 以外の DLL が公開している API を使用することになるんで。

今まで寄せられていた環境依存のトラブルもひょっとするとこれが原因だったのかも??それと、デバイスドライバのロードがたまに失敗することがあったのもこれが原因なのかも???

早速、WinRing0 1.1 ではこの辺も修正したいと思います。

One Response to “DllMain”

  1. DllMain 内は kernel32.dll な API だけ。 Says:

    [...] http://crystaldew.info/2007/10/31/dllmain/ [...]

Leave a Reply