UpdateDriverForPlugAndPlayDevices抛出AccessViolationException

时间:2017-10-17 18:43:22

标签: c# windows

我正在尝试以编程方式更新驱动程序,如下所示:

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

程序在x64中运行,但在执行上面行时抛出AccessViolationException。 (尝试读/写受保护的内存)。

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

1 个答案:

答案 0 :(得分:1)

该片段缺少函数的[DllImport]声明。但我可以说你使用的那个是错的,最后一个参数必须是out bool。当然,您使用的声明缺少out,这是您传递 false 的唯一方法。

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