WinRing0 Beta3

x64 環境での動作を改善しました。実機 + Vista x64 および VMWare + Vista x64 で動作確認をしています。

  • C# 版サンプルを x86 ビルドに変更しました。
  • C++ 版サンプルの x64 版を用意しました。
  • WinRing0 の x64 版を用意しました。名前は WinRing0x64.dll です。
  • x64 関連の不具合を修正しました。(関数の宣言や型の不一致など)
  • C# 版サンプル内の OpenLibSys.cs に複数存在した型の不一致を修正しました。

前回は(何も知らずに) C# 版サンプルを Any CPU でビルドしていたのですが、この設定だと x64 環境では x64 プロセスとして動作するため、x64 対応 DLL が必要になります。DLL 自体は当然用意できるのですが、DllImport で指定する DLL 名ってコンパイル時に確定している必要があるため、実行時に簡単に切り替えることが出来ないんですよね。

もちろん、x86 版と x64 版を別々に作成するのであれば、コンパイル時に DLL 名を切り替えることができるので対応は容易です。一応注意点をメモっておくと CpuidEx() など ****Ex() な関数は AffinityMask の型として DWORD_PTR を使っているため、x86 版では uint 、x64 版では uint64 あたりにする必要があります。OpenLibSys.cs 内の DLL 名だけを書き換えてもダメなのでご注意を!!

動的にアンマネージメソッドを呼び出す。

によると、動的に DLL ファイルを選択することも出来るようですが、C# 初心者の私にはちょっと無理。当面は、.NET な方は x86 ビルドしていただく方向で。って、これもマニュアルに書いておかないとなぁ~。

マニュアル 鋭意制作中(現在英語版のみ)

◇ダウンロード:WinRing0 Beta3

おすすめ

コメントを残す

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