2017-10-17 96 views
0

我试图以编程方式更新驱动程序如下:UpdateDriverForPlugAndPlayDevices引发AccessViolationException

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

程序运行在64位,但高于行执行时,抛出一个AccessViolationException。 (尝试读取/写入受保护的内存)。

任何想法如何解决这个问题?

回答

1

该代码段缺少该函数的[DllImport]声明。但我可以说,你使用的是错误的,最后一个参数必须是out bool。当然,您使用的声明缺少out,唯一可以通过false

是的,当本机代码尝试取消引用指针时,可靠地生成一个AVE。

+0

哎哟,谢谢你指出了! – bas

+0

是的,这是访问冲突的原因。非常感谢。现在结果仍然是错误的,所以还有其他东西需要弄清楚.... :) – bas

相关问题