2

私のWindowsドライバーには.sysファイルと.dllがあります(これはドライバーへのプログラミングインターフェイスだと思いますか?)。とにかく、Windows764ビットで実行するためにドライバーをコンパイルする必要があります。DDKをダウンロードしてすべてをコンパイルできましたが、アプリケーションが新しいドライバーで動作しません。

アプリケーションが32ビットアプリケーションの場合、ドライバーDLLを32ビットDLLとしてコンパイルし、.sysファイルを64ビットファイルとしてコンパイルする必要がありますか?または、SYSファイルとDLLファイルの両方が64ビットである必要がありますか?

4

2 に答える 2

6

64 ビット システムの場合:

  • ドライバーは常に 64 ビットにする必要があります
  • アプリケーションは 32 ビットまたは 64 ビットのいずれかです
  • アプリケーションで使用される DLL (つまり、アプリケーションがリンクする DLL) は、32 ビット アプリケーションの場合は 32 ビット、64 ビット アプリケーションの場合は 64 ビットである必要があります。

DLL がデバイス ドライバーと通信するように設計されている場合は、ドライバーと同じデータ型定義を使用するように慎重に記述する必要があります。size_tドライバーと DLL の両方が、相互の通信に使用される構造体で32 ビットと 64 ビット (例: ) で異なるように定義されたデータ型を使用しないようにするのが最善です。

ただし、これは、DLL を 64 ビット DLL としてビルドする (つまり、x86-64 命令セットを使用する) 必要があるという意味ではありません。リンク先のアプリケーションが使用する命令セットを使用する必要があります。

于 2011-12-07T16:35:22.167 に答える
0

DLL も 64 ビットである必要があります。

参考文献を探してみます。

1つ手に入れました

64 ビット プログラムは 32 ビット ダイナミック リンク ライブラリ (DLL) を呼び出すことができないため、

これが、32 ビット ドライバーが 64 ビットで動作せず、常に個別にダウンロードされる理由です。

于 2010-04-02T18:23:41.597 に答える