2017-10-17 13 views
0

をスロー:UpdateDriverForPlugAndPlayDevicesは、私は次のようにプログラムでドライバを更新しようとしていますAccessViolationException

var result = UpdateDriverForPlugAndPlayDevices(
    IntPtr.Zero, 
    @"MMDEVAPI\AudioEndpoints", 
    @"C:\Windows\System32\DriverStore\FileRepository\audioendpoint.inf_amd64_3cc700130e8033fe\audioendpoint.inf", 
    0, 
    false); 

プログラムは、x64で動作しますが、上記の行が実行されるときAccessViolationExceptionがスローされます。 (保護されたメモリを読み書きしようとする)。

これをトラブルシューティングする方法を教えてください。

答えて

1

スニペットには、関数の[DllImport]宣言がありません。しかし、あなたが使っているものが間違っていると言うことができます。最後の引数はout boolでなければなりません。あなたが使用した宣言は、outが紛失している可能性があります。唯一の方法は、です。です。

ネイティブコードがポインタを間接参照しようとすると、確実にAVEが生成されます。

+0

よろしくお願い致します。 – bas

+0

はい、それがアクセス違反の理由です。どうもありがとう。今は結果がまだfalseとして返されているので、まだ分かっていることがあります。 – bas

関連する問題