【问题标题】:inf file without PID for multiple products under same VID同一 VID 下的多个产品的无 PID 的 inf 文件
【发布时间】:2017-10-01 08:02:37
【问题描述】:

我正在尝试创建一个“通用”Windows USB 驱动程序(实际上只是一个 .inf 文件),该驱动程序可用于同一制造商的多种产品。我想做的是只列出不同制造商的供应商 ID (VID),以便我可以为来自同一制造商的不同型号使用相同的驱动程序,如下所示:

[Version]
Signature=$WINDOWS NT$
Class=visaUsbDevice
ClassGUID={A3330EDF-239D-4206-833B-1D58952613D5}
Provider=%Vendor%
DriverVer=05/03/2017,1.0
CatalogFile=test.cat

;===========================================================================
;  Default Installer
;===========================================================================

[DefaultInstall]
CopyINF=test.inf

[DestinationDirs]

[SourceDisksNames]

[SourceDisksFiles]

;===========================================================================
;  Class Installer
;===========================================================================

[ClassInstall32]
AddReg=AddClass_AddReg

[AddClass_AddReg]
HKR,,,0,%DeviceClassString%
HKR,,Icon,,"-20"

;===========================================================================

[Manufacturer]
%Vendor%=USBList,NTamd64

[USBList]
%USB\VID_12D1.DeviceDesc%=WinUsb_Inst, USB\VID_12D1
%USB\VID_1004.DeviceDesc%=WinUsb_Inst, USB\VID_1004
%USB\VID_18D1.DeviceDesc%=WinUsb_Inst, USB\VID_18D1
%USB\VID_0BB4.DeviceDesc%=WinUsb_Inst, USB\VID_0BB4
%USB\VID_04E8.DeviceDesc%=WinUsb_Inst, USB\VID_04E8
%USB\VID_22B8.DeviceDesc%=WinUsb_Inst, USB\VID_22B8
%USB\VID_054C.DeviceDesc%=WinUsb_Inst, USB\VID_054C
%USB\VID_2A70.DeviceDesc%=WinUsb_Inst, USB\VID_2A70

[USBList.NTamd64]
%USB\VID_12D1.DeviceDesc%=WinUsb_Inst, USB\VID_12D1
%USB\VID_1004.DeviceDesc%=WinUsb_Inst, USB\VID_1004
%USB\VID_18D1.DeviceDesc%=WinUsb_Inst, USB\VID_18D1
%USB\VID_0BB4.DeviceDesc%=WinUsb_Inst, USB\VID_0BB4
%USB\VID_04E8.DeviceDesc%=WinUsb_Inst, USB\VID_04E8
%USB\VID_22B8.DeviceDesc%=WinUsb_Inst, USB\VID_22B8
%USB\VID_054C.DeviceDesc%=WinUsb_Inst, USB\VID_054C
%USB\VID_2A70.DeviceDesc%=WinUsb_Inst, USB\VID_2A70

[PreCopySection]
HKR,,NoSetupUI,,1

[WinUsb_Inst]
Include = winusb.inf
Needs = WINUSB.NT

[WinUsb_Inst.hw]
AddReg=WinUsb_Inst_HW_AddReg

[WinUsb_Inst.Services]
Addservice = WinUsb, 0x00000002, WinUsb_AddService

[WinUsb_AddService]
DisplayName    = %WinUsb_Service_DisplayName%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\WinUSB.sys

[WinUsb_Inst_HW_AddReg]
HKR,,DeviceInterfaceGUIDs, 0x10000,"{761ED34A-CCFA-416b-94BB-33486DB1F5D5}"

[Strings]
Vendor="TEST"
USB\VID_12D1.DeviceDesc="HUAWEI"
USB\VID_1004.DeviceDesc="LGE"
USB\VID_18D1.DeviceDesc="GOOGLE"
USB\VID_0BB4.DeviceDesc="HTC"
USB\VID_04E8.DeviceDesc="SAMSUNG"
USB\VID_22B8.DeviceDesc="MOTOROLA"
USB\VID_054C.DeviceDesc="SONY"
USB\VID_2A70.DeviceDesc="ONEPLUS"
DeviceClassString="NI-VISA USB Devices"
WinUsb_Service_DisplayName="WinUSB Driver"

SERVICE_BOOT_START = 0x0
SERVICE_SYSTEM_START = 0x1
SERVICE_AUTO_START = 0x2
SERVICE_DEMAND_START = 0x3
SERVICE_DISABLED = 0x4

SERVICE_KERNEL_DRIVER = 0x1
SERVICE_ERROR_IGNORE = 0x0
SERVICE_ERROR_NORMAL = 0x1
SERVICE_ERROR_SEVERE = 0x2
SERVICE_ERROR_CRITICAL = 0x3

但如果没有将产品 ID (PID) 连接到列出的 VID,我似乎无法让它工作,例如:

%USB\VID_1004&PID_631C.DeviceDesc%=WinUsb_Inst, USB\VID_1004&PID_631C

当我尝试在设备管理器中手动选择为我的设备创建的 inf 文件时,出现以下错误:

您指定的文件夹不包含与您的设备兼容的软件驱动程序。如果该文件夹包含驱动程序,请确保它设计为适用于基于 x64 的系统的 Windows。

但是,如果我使用指定了一些设备 PID 的 .inf 文件,它就可以工作。问题是我无法列出所有不同的 PID,因为驱动程序需要与所列制造商的随机设备兼容。有谁知道我该如何解决这个问题?

【问题讨论】:

    标签: android windows usb driver inf


    【解决方案1】:

    这是一个非常糟糕的主意,因为这些制造商将来可能会选择制造不同类型的设备,如果您的驱动程序优先于官方驱动程序,则可能会使人们难以使用这些设备。

    此外,它也不起作用,因为“PID”是 Windows 用来查找驱动程序的字符串的一部分,正如您在实验中看到的那样。

    您可以尝试在设备管理器中查看设备,看看它们是否具有可用于匹配的“兼容 ID”,而不是 VID/PID 编号。

    您可以做的另一件事是指导您的用户如何为特定连接的 USB 设备手动安装驱动程序。为此,他们可以打开设备管理器,右键单击有问题的 USB 设备,选择“更新驱动程序软件...”,选择“浏览我的计算机以查找驱动程序软件”,选择“让我从列表中选择我的计算机上的设备驱动程序”,然后他们应该能够从那里找到您提供的 INF 文件。

    或者,您可以使用 Zadig 等实用程序为这些设备安装 WinUSB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      相关资源
      最近更新 更多