2012-05-07 6 views
0

私の質問は「どのようにWDKまたはDDKなしのドライバを書くか...?」です。
私はそれを見つけましたが、何も見つかりませんでした。
私は教育目的でこれをやりたいのですが、 と私は窓7でそれをやりたいと思います。私はCとアセンブリを知っています組立)ライブラリーやフレームのないドライバを作成するにはどうすればよいですか?

大変助けになりました!

+5

いいえ、悪い英語をお詫びする必要はありません。理にかなう質問を書くだけで、必要な情報を提供し、教科書全体を書くことなく答えることができます。 – jalf

+2

DDKのようなものがなくても(少なくとも合理的に)、使用する必要がある機能を宣言するヘッダーが含まれています。 –

+0

どのような種類のドライバですか?ほとんどのタイプのデバイスドライバでは、カーネルコードを書く必要があります。 WDK/DDKのないWindowsでこれを行うことは実際にはうまくいきません。 – pmdj

答えて

0

ドライバーキットを使用せずにこれを実行する方法は本当にありません - マイクロソフトは正義の米国政府部門によって法的拘束が特権/非公表を経由して誰にもOSのアクセス(でも、自分の開発者)の提供から令でありますAPI。

+0

これらのドライバキットはいくつかのプログラム言語といくつかのプログラマによって書かれているので、これを達成する方法が必要です – infinity

+0

これを行うには、Windowsカーネル開発チームで仕事を得なければなりません –

+0

私は、私が知らない新しいことを学ぶためにどれほどのスキルが必要なのかを教えてください。 – infinity

0

WDKまたはDDKの機能を知り、それを再作成する必要があります。特別な値を特殊レジスタにプッシュし、特別な割り込みに応答します。

あなたのための仕事がたくさんあります。

幸運を祈る!

+0

私のプログラムがring3で実行されているため割り込みが禁止されています。私は許可エラーxDを得た)と私のプログラムをカーネルモードで動かすには私のプログラムはドライバでなければならない(それは私が多分その間違ったことを知っている=)) – infinity

1

システムが一部のハードウェアを使用できるようにするドライバを意味していれば、それは(事実上)不可能です。ドライバは何らかの形でシステムとインターフェースする必要があり、これがDDKのためのものです。

しかし、COM、LPT、またはUSB(システム内に既に存在するもの)以外のドライバは必要ありません。

+0

私はシステムがいくつかのハードウェア – infinity

2

オペレーティングシステム用のドライバを作成するには、OSカーネルのドライバ構造とシステムコール、およびその他の動作に関する知識が必要です。これがDDKによって提供されるものです。これをDDKなしで実行しようとすると、すべてのカーネルのドライバ構造とシステムコールを一から再実装しようとするのと同じになります。

は、おそらくこれを行うことができます実質的にそれは特にWindowsなどの任意の成熟したオペレーティングシステムのために、実際には不可能である7

0

あなたは、Win7のように、特定のオペレーティングシステムで動作するドライバのようなドライバを意味している場合ホイールを再発明したくない場合は当然WDKのような開発キットが必要です。 Android SDKを使用せずに、フレームワークを使用せずにゲームを開発したり、Androidアプリを開発するようなものです。これは可能ですが、WDKなどの開発キットを使用して簡単に実行できる非常に難しい作業です。 EDIT:ドライバを扱うコードを真剣に考えたければ、DDKでドライバを作成し、リバースエンジニアリングを使って低レベルのコードを見て、そのコードを処理するためにCPUとどのように相互作用するかを見てください。ハードウェア

0

私はWindowsの内部については何も知らないけど、Andrew TridgellはLD_Preloadを使ってリバースエンジニアリングWindowsドライバについて話しました。彼はドライバキットなどを使用していませんでした

Windowsのダイナミックリンカについてはわかりません(私はWindowsが.soを使用していないことは確かですが)使用されている仮想ボックス)が動作するはずです。

現在地http://lwn.net/Articles/425714/

リバースエンジニアリング既存のドライバは、あなた自身を書くに向けて良いスタートを与える必要があります詳細を見ることができます。

関連する問題