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