2

我已经为基于WinUsbDriver的复合设备(带有 MI_## 部分的硬件 ID)创建了一个驱动程序。

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

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

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

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

4

1 回答 1

2

您最好的选择(在 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);
于 2016-01-21T21:18:39.713 回答