2

deviceiocontrol 関数を使用して、アプリケーションからドライバーに構造体を渡しています。

構造体には 2 つのメンバーしかありません。

struct Buff
{
   BYTE * bPtr;
   UINT   uiSize; 
}BuffVar;

ポインターとサイズを割り当て、構造体のアドレスをドライバーに渡します。

ドライバーでは、構造体へのポインターを作成し (アプリとドライバー間で構造体を共有しています)、ユーザーが渡したバッファーから値にアクセスします。ポインターにアクセスすると正しい値が得られますが、サイズの値は常にジャンク データです。これは、私が使用している 64 ビット プラットフォームです。アプリケーションを WDK でコンパイルすると完全に動作しますが、Visual Studio を使用するとこの問題に直面します。私はこの環境に慣れていません。そのような問題に直面した人はいますか?どんな助けでも大歓迎です。

よろしく、 アビラム

4

0 に答える 0