在 Windows 10 Professional 中安装自定义 inf 时遇到问题。 Windows 使用 OEM 驱动程序覆盖它

2023-12-19

我已经为自定义设备制作了签名的 USB 串行 inf 文件,并创建了一个安装程序,该安装程序成功地将驱动程序安装到 Windows 7 (32/64)、Windows 8.1 (64),但不适用于 Windows 10。这适用于默认安装(右-使用设备管理器和 PNPU​​TIL 直接在文件上单击、安装)。设备驱动程序已成功安装,但改为使用 OEM usbser 驱动程序。单击“更新驱动程序”并在设备管理器中选择我的驱动程序后,Windows 提示我“已为您的设备安装了最佳驱动程序软件”。如果我使用设备管理器并选择“从磁盘安装”,我可以成功解决 Windows 10 强制执行自己的驱动程序的问题。但这并没有让我更接近成功的 inf 文件和安装程序。

我的默认安装过程:

  1. 从 USB 端口拔下设备
  2. 加载新安装的 Windows 10 Professional 的快照
  3. 右键单击,安装到.inf 文件上
  4. 插入设备
  5. 查看设备管理器,发现使用的是微软制作的标准USB Serial Device驱动,而不是我的驱动

如果我随后卸载它并重复步骤 3-5,有时它会允许我的自定义驱动程序保留。

我被告知我的驱动程序安装在 Windows 10 Enterprise 上,这让事情变得更加混乱。

问题:我做错了什么?

我的 inf 文件:

;************************************************************
; Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation

; Version v1.1, updated 17 April 2013


[Strings]
DriverPackageDisplayName="Rinstrum USB Serial Drivers"
ManufacturerName="Rinstrum"
ServiceName="USB RS-232 Emulation Driver"
linux.gserial="Rinstrum USB Gadget Serial"
MFGNAME="Rinstrum"

[DefaultInstall]
CopyINF=c500.inf

[Version]
DriverVer=03/02/2017,1.0.0.0
Signature=$Windows NT$
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
CatalogFile=c500.cat
DriverPackageDisplayName=%DriverPackageDisplayName%
PnpLockdown=1

[Manufacturer]
%MFGNAME%=Models,NTx86,NTamd64,NTarm

[DestinationDirs]
DefaultDestDir=12
FakeModemCopyFileSection=12

[Models.NTx86]
%linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00

[Models.NTamd64]
%linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00

[Models.NTarm]
%linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00

[DriverInstall]
Include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=DriverAddReg

[DriverAddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.Services]
Include=mdmcpq.inf
AddService=usbser,0x2,DriverService

[DriverService]
DisplayName=%ServiceName%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
LoadOrderGroup=Base

更新:来自 setupapi.dev.log 的附加信息

>>>  [Device Install (DiInstallDriver) - C:\Users\R&D\Desktop\c500.inf]
>>>  Section start 2017/02/03 17:17:58.321      
cmd: "C:\Windows\System32\InfDefaultInstall.exe" "C:\Users\R&D\Desktop\c500.inf"     
ndv: Flags: 0x00000000     
ndv: INF path: C:\Users\R&D\Desktop\c500.inf     
inf: {SetupCopyOEMInf: C:\Users\R&D\Desktop\c500.inf} 17:17:58.337     
inf:      Copy style: 0x00000000 !   
inf:      Driver package is already in driver store     
inf:      Driver Store Path: C:\Windows\System32\DriverStore\FileRepository\c500.inf_amd64_4fee793fb11027ac\c500.inf    inf:      Published Inf Path: C:\Windows\INF\oem4.inf     
inf: {SetupCopyOEMInf exit (0x00000000)} 17:17:58.368
<<<  Section end 2017/02/03 17:17:58.399
<<<  [Exit status: SUCCESS]

更新: 尝试安装设备时 setupapi.dev.log 给出以下错误

 sig:                     Success: File is signed in Authenticode(tm) catalog.
 sig:                     Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.

更新: VBox 来宾添加安装程序设法在 WIN10 中安装我的 inf 文件。这是来源:

https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp#L433 https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp#L433


在授予用户覆盖 Windows 10 中 OEM 驱动程序的权限之前,需要激活 Windows。在我的测试计算机上激活 Windows 解决了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 10 Professional 中安装自定义 inf 时遇到问题。 Windows 使用 OEM 驱动程序覆盖它 的相关文章

  • 调整屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单元相关联?)

    在MFC中 对话框的设计使用DLUs http msdn microsoft com en us library bb847924 aspx 在 WPF 中 我们以 1 96 英寸为单位指定 虽然这确实会缩放窗口和视觉元素 但我们如何使 W
  • 如何在 Windows 上应用差异补丁?

    有很多程序可以创建差异补丁 但我在尝试应用一个程序时遇到了很大的困难 我正在尝试分发补丁 但用户向我询问了如何应用该补丁 于是我尝试自己弄清楚 结果发现我毫无头绪 而且我能找到的大多数工具都是命令行的 我可以处理命令行 但是如果没有一个漂亮
  • 无法单步执行远程 SQL Server 2008 上的存储过程

    我在虚拟上安装了一个域控制器Windows Server 2008 x64 SQL Server 2008 Express x64正在运行Windows Server 2008 x64和客户端Windows 7 RTM x86 两者都已加入
  • 如何确保密钥是在 TPM 内部创建的?

    我需要 在客户端计算机上运行 exe 这将在 TPM 中创建密钥对 然后我将使用 TPM 生成的密钥对的公钥部分创建 CSR 我关心的是如何确保密钥是在 TPM 内部创建的 而不是由欺骗的 TPM 创建的 这将使私钥能够被迁移和复制 我听说
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 当我的进程被终止时到底会发生什么?

    我有一个包含本机代码和托管代码的混合进程 在 Windows Server 2003 上运行 当我从进程资源管理器中终止进程时 它会进入 100 cpu 的状态 并在消失之前保持这种状态一段时间 有时甚至 10 分钟 在此期间我无法 杀死
  • 使用 WriteConsoleOutput 用 c# 编写 Unicode

    我正在尝试使用WriteConsoleOutput来自 kernel32 dll 的函数 但是我无法正确显示 unicode 字符 它们总是显示为错误的字符 我尝试过使用 Console OutputEncoding System Text
  • 合法管理员如何获取 Active Directory 中的用户密码?

    如果密码以可逆加密方式存储在 Active Directory 中 管理员 开发人员如何提取和解密该密码 具体来说 我指的是this http technet microsoft com en us library cc784581 WS
  • PHP 7.0.5:使用未定义的常量 FTP_BINARY - 假定为“FTP_BINARY”

    在 Windows IIS 上升级到 PHP 7 0 5 终于有了 sqlsrv PDO 驱动程序 我正在使用 Laravel 5 1 当尝试连接到 FTP 驱动器时 出现以下错误https github com thephpleague
  • Winsock 接受超时

    是否可以设置超时时间accept使用阻塞winsockets时的函数 就像我们可以通过setsockopt 来接收和发送函数一样 似乎不可能 但我想确保 选择功能可以与超时一起使用 虽然 select 最常与非阻塞套接字一起使用 但我还没有
  • Inno Setup 安装程序的文本编码错误

    对于某些 Windows 安装 我的安装程序 Inno Setup 的俄语文本编码很差 所有机器都安装了Windows XP SP3 英文版 但有些机器可以运行 有些机器则没有 Windows 上有什么设置可以解决这个问题吗 Thanks
  • 在重定向文件 (>output.txt) 中显示带重音符号的字符

    example mode con cp gt tmp output tmp notepad tmp output tmp show Statut du p riph rique CON Page de codes 850 代替 Statut
  • 使 GetRawInputDeviceInfo 和 RIDI_DEVICEINFO 与 C# 一起使用

    我有一个问题 我似乎无法使 GetRawInputDeviceInfo 与 RIDI DEVICEINFO 结合使用 尝试检索 RID DEVICE INFO 根本不起作用 我从函数中得到错误 1 这意味着没有足够的空间来存储 RID DE
  • UnicodeDecodeError:“charmap”编解码器|安装 pip python-stdnum==1.8 时出错

    我对编程还很陌生 所以请耐心等待 当我为正在使用的模块安装一些必需的软件包时 我无法安装python stdnum 1 8 我收到以下错误消息 File C Users 59996 AppData Local Programs Python
  • 如何使用 VB6 调用 Windows shell 命令?

    究竟如何使用 VB6 才能像从命令行一样调用任何 Windows shell 命令 例如 一些微不足道的事情 echo foo 操作方法如下 Shell cmd echo foo vbNormalFocus
  • 在Windows cmd中获取精确到毫秒的系统时间

    我试图在 Windows cmd 中将系统时间精确 到毫秒 我知道可以使用以下方法获得厘秒精度 echo time 我发现其他问题提出了完全相同的问题 但没有答案可以完全回答该问题 这是我到目前为止发现的 该解决方案仅适用于厘秒精度 与我上
  • Excel的解析路径

    其实我想问以下问题 对于位于 目录中定义的 PATH 怎么能 我找出这些目录中的哪个 找到了 因为我需要使用 Process Run 从 C 运行 Excel 并且只需指示 Excel 即可正常工作 Windows 似乎知道在哪里可以找到它
  • Nodejs 在 Windows 上找不到已安装的模块

    我现在正在Windows上学习nodejs 使用npm cmd全局安装了几个模块 nodejs找不到已安装的模块 以玉石为例 npm install jade g Jade安装在目录中 C Program Files x86 nodejs
  • 无法在 Windows 7 上安装 Android USB 驱动程序

    所以我想使用我的新 Nexus 5 来调试我的应用程序 我尝试通过以下方式安装 Android USB 驱动程序装置经理 http developer android com tools extras oem usb html Win7但我

随机推荐