0

私の質問は、「WDK または DDK または ... を使用せずにドライバーを作成する方法」です。
私はそれをグーグルで検索しましたが、何も見つかりませんでした...
そして、教育目的でそれをやりたいだけで、Windows 7でやりたいのですが、cとアセンブリを知っています(ただし、アセンブリのプロではありません)

助けていただければ幸いです。

4

6 に答える 6

2

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

おそらくこれは可能ですが、特に Windows 7 などの成熟したオペレーティング システムでは、実際には不可能です。

于 2012-05-07T15:31:30.910 に答える
1

システムがハードウェアを使用できるようにするドライバーを意味する場合、(事実上) 不可能です。ドライバーは何らかの方法でシステムとやり取りする必要があり、それが DDK の役割です。

ただし、お持ちのデバイスにアクセスするだけの場合 (たとえば、COM、LPT、または USB 経由で接続)、COM、LPT、または USB (システムに既に存在する) 以外のドライバーは必要ありません。

于 2012-05-07T15:31:00.147 に答える
0

ドライバー キットを使用せずにこれを行う方法は実際にはありません。Microsoft は、特権/非公開 API を介して OS アクセスを誰にも (自社の開発者であっても) 提供することを禁止する米国政府司法省の法令に法的に拘束されています。

于 2012-05-07T15:27:51.863 に答える
0

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

たくさんの仕事が待っています。

幸運を!

于 2012-05-07T15:30:33.807 に答える
0

Win7 などの特定のオペレーティング システムで動作するドライバーのようなドライバーを意味する場合は、車輪を再発明したい場合を除き、必然的に WDK などの開発キットが必要になります。フレームワークを使わずにゲームを開発したり、Android SDK を使わずに Android アプリを開発したりするようなものです。可能ですが、WDK などの開発キットを使用して簡単に実行できる非常に難しいタスクです。編集: ドライバーを処理するコードを深く掘り下げたい場合は、DDK を使用してドライバーを作成し、リバース エンジニアリングを使用してコードを低レベルで見て、ハードウェアを処理するために CPU と相互作用する方法を確認できます。 .

于 2012-05-08T00:18:09.623 に答える
0

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

また、Windows の動的リンカーについては何も知りません (Windows は .so を使用しないと確信しています) が、Linux で仮想マシン (彼は仮想ボックスを使用) を介して Windows を実行する彼の手法は機能するはずです。

ここで詳細を確認できますhttp://lwn.net/Articles/425714/

既存のドライバーをリバース エンジニアリングすることで、独自のドライバーを作成するための良いスタートを切ることができます。

于 2012-05-08T05:44:54.183 に答える