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

标签 c# c++ libusb inf winusb

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

重点是"template"不包含 [DefaultInstall] 部分,因此我无法P/Invoke InstallHinfSection 函数:

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

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

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

最佳答案

您最好的选择(在 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);

关于c# - 如何从 .NET 桌面应用程序安装没有 [DefaultInstall] 部分的 INF 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760882/

相关文章:

homebrew - brew install libusb 链接失败

c# - 为什么 TcpListener 会泄漏 ESTABLISHED 连接?

c# - 如何使用 Html Agility Pack 获取 img/src 或 a/hrefs?

c++ - C++98 标准在哪里指定对静态成员的调用何时依赖于模板?

c++ - 如何使用 openSSL C++ 以 PEM 格式存储 Diffie HellMan 对象的 key

c - libusb怎么能看懂开始阅读呢?

c# - WPF/控制台混合应用程序

c# - 列出持有引用文献

C++ 智能指针取消引用 - 检查它是否已初始化的开销是多少?

C++查找USB设备挂载点