DllMain

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

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

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

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

DllMain (MSDN)

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

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

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

おすすめ

1件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です