Windows 10

时间:2017-05-29 07:58:26

标签: winapi serial-port windows-10 drivers inf

我使用的是嵌入式设备(运行裸机程序),它通过USB连接,在连接的主机PC上显示为串行接口。这适用于所有经过测试的Linux变体和所有Windows到Win 7。不幸的是,Windows 10存在更大的问题:COM端口无法轻松打开(意味着需要重试几次),有时现有连接会停止工作。

有趣的是:打开COM端口包括调用SetCommState()和GetCommState(),其中SetCommState()失败 - 当它与从GetCommState()返回的参数完全相同时使用。重复此过程几次然后成功,最后在10次重试后SetCommState()工作。

在主机PC上使用INF文件,它只会声明自己的VID / PID(适合嵌入式设备),但随后指向Windows内部驱动程序usbser.sys:

[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
LayoutFile=layout.inf
DriverVer=08/17/2001,5.1.2600.0

[Manufacturer]
%MFGNAME%=DeviceList, NTx86, NTamd64 

[DestinationDirs]
DefaultDestDir=12

[SourceDisksFiles]

[SourceDisksNames]

;------------------------------------------------------------------------------
;  Windows 32-bit 2000/XP/Vista/Win7 Sections
;------------------------------------------------------------------------------

[DeviceList.NTx86]
%DESCRIPTION%=DriverInstall, USB\VID_1CBE&PID_0002

[DriverInstall]
CopyFiles=DriverCopyFiles
AddReg=DriverInstall.AddReg

[DriverCopyFiles]
usbser.sys,,,0x20

[DriverInstall.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.Services]
AddService=usbser, 0x00000002, DriverService

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

;------------------------------------------------------------------------------
;  Windows 64-bit Vista/Win7 Sections
;------------------------------------------------------------------------------

[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall.NTamd64, USB\VID_1CBE&PID_0002

[DriverInstall.NTamd64]
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg

[DriverCopyFiles.NTamd64]
usbser.sys,,,0x20

[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64

[DriverService.NTamd64]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
MFGNAME     = "Texas Instruments Incorporated"
DESCRIPTION = "StarterWare USB serial port"
SERVICE     = "StarterWare USB CDC serial port"

那么:Windows 10中是否有与串行驱动程序/串行接口/ INF驱动程序定义文件相关的重要更改?或者这是MS中的一个错误。 USB串口驱动?

0 个答案:

没有答案