如何在没有.NET桌面应用程序的[DefaultInstall]部分的情况下安装INF驱动程序?

时间:2015-02-27 08:51:11

标签: c# c++ libusb inf winusb

我已根据WinUsbDriver为复合设备(带有MI _ ##部分的硬件ID)创建了一个驱动程序。

关键是“模板”不包含 [DefaultInstall] 部分,因此我不能 P / Invoke InstallHinfSection 功能:

InstallHinfSection(NULL,NULL,TEXT("DefaultInstall 132 path-to-inf\infname.inf"),0);

我想在首次连接复合设备之前创建INF文件并使用应用程序代码安装它们。

如何在没有.NET桌面应用程序的 [DefaultInstall] 部分的情况下安装INF驱动程序?

2 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/11751075/1948857

可能这个答案可以提供帮助。这些天我遇到了这些问题并用这些答案解决了。

答案 1 :(得分:0)

您最好的选择(在Windows Vista及更高版本中)是使用直接功能将inf安装到驱动程序存储区中,然后自动将其安装在匹配的硬件上。这可以通过一个函数来完成:DiInstallDriver

例如......

[DllImport("newdev.dll")]
public static extern bool DiInstallDriver
(
    [In] IntPtr hwndParent,
    [In] string FullInfPath,
    [In] uint Flags,
    [Out] bool NeedReboot
);

DiInstallDriver(IntPtr.Zero, "full path to my inf", 0, false);