Visual Studio を使ってドライバをコンパイルする方法(暫定版) [ドライバ開発]
http://alter.org.ua/en/docs/nt_kernel/vc8_x64_proj/
Building NT kernel mode drivers in MS Visual Studio 8.0 (VS 2005) for x64 (AMD64) platform
DDKのサンプルは全部Makeファイルになっているので開発が非常にだるい。と思っていたところ、こんなものを発見したので暫定メモ(動作確認はまだ)。
手元のVisualStudio2003と2005を比較したところ、サブシステムのところに、いくつか項目が増えていた。2003ではConsoleとWindowsしかなかったが、2005ではNative他いくつかの項目が追加されている模様。新しいWDKによるものかは不明。
詳細は省くが、
・空のDLLプロジェクトを作る
C/C++
コード生成
・バッファのセキュリティチェック:いいえ (/GS-)
詳細
・呼び出し規約:__stdcall (/Gz)
リンカ
全般
・インクリメンタルリンクを有効にする:インクリメンタル リンクを行わない (/INCREMENTAL:NO)
・インポートライブラリの無視:はい
入力
・すべての規定のライブラリの無視:はい (/NODEFAULTLIB)
・追加の依存ファイルにntoskrnl.libとHal.libを追加
システム
・サブシステムを"ネイティブ (/SUBSYSTEM:NATIVE)"
・ドライバをドライバ (/DRIVER)
詳細
・エントリポイント:”DriverEntry”
・コマンドラインに"/safeseh:no" を追加
でいけるっぽいが、まだ動作未確認。
ドライバのインクルードファイルやライブラリはPlatformSDKとはかなり相性が悪いので、
2003でもコマンドラインオプションから追加すれば、nativeオプションが指定できるが、ドライバオプションが無いので、ベースアドレスとかいじらないとだめっぽい。
コメント 0