USB驱动之INF文件说明
USB驱动程序安装离不开一个INF的文件,INF文件向操作系统提供了安装驱动所需的信息,当一个新设备插入PC后,操作系统根据提供的INF文件自动完成驱动程序的安装。Inf是Device information File的缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,Inf文件中包含硬件设备的信息或脚本以控制硬件操作。在Inf文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等。
当设备驱动程序安装好后,将会复制一份INF文件到C:/Windows/INF文件中,方便设备因一些原因被删除后再插入时自动安装驱动程序,这个文件夹中还存放有其它大量的inf文件,用于一些被支持的新设备自动安装驱动程序。
INF文件可实现的功能
Inf文件格式:
关键和常用的节(section)有:
[Version]版本描述信息,主要用于版本控制,是唯一必须的节。
[Strings]字符串信息,用于常量定义,即其它节要用到的字符串常量都可以保存到这里
[DestinationDirs]定义系统路径信息,与Copy Files、Rename Files、Delete Files等节配合,用于指定其缺省操作目录。
[SourceDisksNames]要复制或安装的文件位置。
[SourceDisksFiles]要复制或安装的文件名。
[Manufacturer]指明供应商及其对应Models节的名称
[Models]指明Install/DDInstall节的名称、设备的硬件ID等信息(注意,Models的名称由Manufacturer节定义)
[Install]指明需复制的文件、想注册表中添加的内容等信息
[DDInstall.Services]指明驱动程序安装的详细信息
INF文件中各节及其条目的详细说明:
一、Version节:
Version节通常作为INF文件的开始,下表列出了其包含的各项。所有INF文件都必须含有Version节及其Signature项。
Version节里的项
项 |
说明 |
Signature |
指明驱动程序的签名,其取值为:$Windows NT$、$Windows 95$、$Chicago$、 |
Class |
指明驱动程序所属的类别 |
ClassGuid |
指明设备类的GUID,其格式为:{nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnn}① |
Provider |
指明该INF文件的供应商 |
LayoutFile |
仅由操作系统内部提供的INF文件使用 |
CatalogFile |
指明数字签名文件的文件名,其扩展名为.cat |
DriverVer |
指明驱动程序的版本信息,其格式为:mm/dd/yyyy[,x.y.v.z] |
Version节举例
[Version]
Signature="$ CHICAGO$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%MSFT%
DriverVer=03/21/2012,1.0.0.1
说明:
Signature:此条目主要描述此INF文件支持的设备类型和适用的操作系统,只能取值为$Windows NT$、$Chicago$ 或 $Windows95$。如果不是以上这些字符,则不被认可为inf文件。该条目如果是$Windows95$表示该INF文件只适用于Windows95/98的系统,如果是$Chicago$表示该INF文件适用于Windows95/98及Windows2000以上的操作系统,如果是$Windows NT$表示该INF文件只适用于Windows 2000/XP/2003及以上的操作系统。
Class:此条目表明设备的类型,常见的有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,如网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)、USB(通用串行总线控制器)。
ClassGUID:设备的GUID,如果设备是一个标准类别,使用标准类的名称和GUID,否则创建一个自定义的类别名称,并自定义它的GUID。
常用设备GUID值
|
||
Class |
ClassGuid |
说明 |
1394 |
6BDD1FC1-810F-11D0-BEC7-08002BE2092F |
1394主控制器 |
CDROM |
4D36E965-E325-11CE-BFC1-08002BE10318 |
CD-ROM驱动器 |
DiskDrive |
4D36E967-E325-11CE-BFC1-08002BE10318 |
磁盘驱动器 |
Display |
4D36E968-E325-11CE-BFC1-08002BE10318 |
显示适配器 |
FDC |
4D36E969-E325-11CE-BFC1-08002BE10318 |
软盘驱动器 |
HDC |
4D36E96A-E325-11CE-BFC1-08002BE10318 |
硬盘控制器 |
HIDClass |
745a17a0-74d3-11d0-b6fe-00a0c90f57da |
人机接口设备 |
Keyboard |
4D36E96B-E325-11CE-BFC1-08002BE10318 |
键盘 |
Modem |
4d36e96c-e325-11ce-bfc1-08002be10318 |
调制解调器 |
Monitor |
4d36e96e-e325-11ce-bfc1-08002be10318 |
监视器 |
Mouse |
4d36e96f-e325-11ce-bfc1-08002be10318 |
鼠标 |
Net |
4d36e972-e325-11ce-bfc1-08002be10318 |
网络适配器 |
Ports |
4d36e978-e325-11ce-bfc1-08002be10318 |
端口(COM&LPT) |
Printer |
4d36e979-e325-11ce-bfc1-08002be10318 |
打印机 |
System |
4d36e97d-e325-11ce-bfc1-08002be10318 |
系统设备 |
TapeDrive |
6D807884-7D21-11CF-801C-08002BE10318 |
磁带驱动器 |
USB |
36FC9E60-C465-11CF-8056-444553540000 |
USB |
Provider:设备提供商,对应设备管理器中显示的设备提供商的信息。
DriverVer:对应设备管理器中显示的驱动程序版本的信息。
二、DestinationDirs节:
DestinationDirs节指明INF文件和设备驱动程序的目标目录。当INF文件使用CopyFiles、DelFiles、RenFiles指令时,则必须包含该节。其各项的格式如下:
DefaultDestDir=dirid[,subdir]
File-list-section=dirid[,subdir]
其中,“DefaultDestDir”是一个项名称,代表文件复制、删除、重命名操作的缺色很难干目标目录;“file-list-section”指出CopyFiles、DelFiles、RenFiles指令所引用的节;“dirid”指出目标目录值,见下表;“subdir”指出dirid目录下的子目录。
DestinationDirs节中的常用dirid
dirid |
目标目录 |
10 |
Windows目录:%windir% |
11 |
系统目录 Windows 98:%windir%/system Windows 2000:%windir%/system32 |
12 |
驱动程序目录 Windows 98:%windir%/system/IoSubsys Windows 2000:%windir%/system32/drivers |
13 |
命令目录(Windows98) |
14 |
控制面板目录(Windows98) |
15 |
打印机目录(Windows98) |
16 |
工作组目录(Windows98) |
17 |
INF目录 |
18 |
帮助目录 |
20 |
字体目录 |
23 |
颜色目录 |
24 |
应用程序目录(Windows2000) |
25 |
共享目录 |
50 |
%windir%/system(Windows2000) |
54 |
Ntldr.exe和osloader.exe所在的目录(Windows2000) |
55 |
打印处理器目录(Windows2000) |
三、SourceDisksNames节:
SourceDisksNames节指明设备驱动程序源文件所在位置及相关信息。格式如下:
[SourceDisksNames]
disk-ordinal=”disk-description”,disk-label,disk-serial-number
罗列源文件所在盘符序列码、盘描述符、盘卷标号和盘序列号。
其中disk-ordinal是盘符序列码,标识一个源盘,具有唯一性,一般可设置为从1开始递增的整数,0不是一个有效的盘符序列码。当存在多个源盘时,盘符序列码之间不能重复。disk-description是盘描述符,用双引号括起来的字符串或字符串宏描述盘的内容或目的。安装引擎将该字符串显示在对话框内以提示用户。disk-label为源盘的卷标识。disk-serial-number被设置为0。
四、DefaultInstall节
此节指定包含的安装指令节,其中每一个条目将会成为一节。
[DefaultInstall]节中定义的操作:
LogConfig=log-config-section-name[,log-config-section-name]... ;Log日志文件配置
Copyfiles=file-list-section[,file-list-section]... ;复制文件
Renfiles=file-list-section[,file-list-section]... ; 文件改名
Delfiles=file-list-section[,file-list-section]... ; 删除文件
UpdateInis=update-ini-section[,update-ini-section]... ; 更新Inis
UpdateIniFields=update-inifields-section[,update-inifields-section]... ; 更新Ini字段
AddReg=add-registry-section[,add-registry-section]... ; 添加注册项
DelReg=del-registry-section[,del-registry-section]... ; 删除注册项
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]... ; Ini文件转换为Reg文件
以上各条目并非全部必须。节名必须为可见字符。每一个条目包含一到多个节,第一个命名之后的所有命名必须以“,”引导。
以下介绍几个经常用到的操作:
1.
样例:
[DefaultInstall]
CopyFiles = copyfile_list_section[,copyfile_list_section]
[copyfile_list_section]
dest_filename,[source_filename],[,flags]
[dest_filename,[source_filename],[,flags]]
说明:
dest_filename
必选项。用于指定目标文件名的字符串。如果不提供 source_filename,则使用 dest_filename 作为源文件名。
source_filename
必选项。用于指定源文件名的字符串。如果 source_filename 与 dest_filename 相同,则可省略source_filename。
flags
可选项。用于指定在复制进程期间执行某个操作的数字值。下表列出了 Windows CE 支持的值。
标志 |
值 |
说明 |
COPYFLG_WARN_IF_SKIP |
0x00000001 |
用户尝试跳过发生错误后产生的文件时警告他。 |
COPYFLG_NOSKIP |
0x00000002 |
不允许用户跳过复制文件的操作。 |
COPYFLG_NO_OVERWRITE |
0x00000010 |
不改写目标目录中的现有文件。 |
COPYFLG_REPLACEONLY |
0x00000400 |
仅当源文件存在于目标目录中时才将它复制到目标目录中。 |
CE_COPYFLG_NO_DATE_DIALOG |
0x20000000 |
如果目标文件比源文件新,请勿复制此文件。 |
CE_COPYFLG_NODATECHECK |
0x40000000 |
改写目标文件时忽略数据。 |
CE_COPYFLG_SHARED |
0x80000000 |
考虑共享 DLL 时,创建一个引用。 |
2.
样例:
[DefaultInstall]
AddReg = add_registry_section[,add_registry_section]
[add_registry_section]
reg_root_string,subkey,[value_name],flags,value[,value]
[reg_root_string,subkey,[value_name],flags,value[,value]]
reg_root_string
必选项。用于指定注册表根位置的字符串。下表显示了注册表根及其缩写。
注册表根字符串 |
注册表根 |
HKCR |
HKEY_CLASSES_ROOT |
HKCU |
HKEY_CURRENT_USER |
HKLM |
HKEY_LOCAL_MACHINE |
HKR |
与注册表关键子有关,最适合AddReg命令出现的地方。比如,注册表中每个设备的“硬件”子键:…/Enum/枚举器ID/设备ID,与此相对的注册表中每个驱动程序指定的“软件”子键:…/CLASS/类GUID/设备ID等。 |
subkey
必选项。用于指定如 Strings 节中定义的字符串关键字或 reg_root_key 下要设置的注册表路径的值。此值可以指定以下项:
value_name
可选项。用于指定现有子项值中的值名称或创建要添加的新值名称的字符串。如果被省略,则使用默认注册表值名称。
flags
必选项。用于指定注册表项的数据类型和/或控制添加注册表根项的操作的值。下表列出了 Windows CE 支持的标志值。
标志 |
值 |
数据类型说明 |
FLG_ADDREG_NOCLOBBER |
0x00000002 |
如果注册表项存在,请不要改写它。您可以将此标志与表中的其他标志组合。 |
FLG_ADDREG_TYPE_SZ |
0x00000000 |
REG_SZ 注册表数据类型。通常为默认类型,这样在注册表项操作此类型的 value 时可省略此标志。 |
FLG_ADDREG_TYPE_MULTI_SZ |
0x00010000 |
REG_MULTI_SZ 注册表数据类型。其后的 value字段可以包含由逗号隔开的字符串列表。不需要字符串值的 NULL 结束符。 |
FLG_ADDREG_TYPE_BINARY |
0x00000001 |
REG_BINARY 注册表数据类型。其后的 value字段必须是由逗号分隔(每个字段为一字节)的数值列表且不能使用 0x 十六进制前缀。 |
FLG_ADDREG_TYPE_DWORD |
0x00010001 |
REG_DWORD 注册表数据类型。只支持 Win32 Setup .inf 文档中的非兼容格式。 |
value
必选项。用于指定由 value_name 给出并添加到注册表项中的实际数据的值。对指定的类型应该使用合适的格式。
五、[Manufacturer]节
Manufacturer节指明供应商及其对应Models接的名称,其各项的格式如下:
[Manufacturer]
%MfgName%=Microsoft
[Microsoft]
%USB/VID_045E&PID_930A.DeviceDesc%=BULKUSB.Dev, USB/VID_045E&PID_930A
说明:
在Strings节中可以找到%MfgName%定义的字符串,代表设备制造商的名字,在Strings节中可以找到形如MfgName=”Intel”的项,表明设备制造商是Intel。而右边的Microsoft也是制造商的Models节的节名。
Models节指明Install/DDInstall节的名称、设备的硬件ID和兼容ID等信息,其节名称由Manufacturer节指定。Models节名是由Inf编写者自己定义的,不属于系统节名。每个制造商的Models节至少标识一个设备,并规定设备的VID和PID。同时引用这个设备inf文件的Install节。该节也可以规定一个或多个附加设备ID。当设备管理器发现设备检测ID与此节定义ID相符时,设备管理器就知道找到了正确的INF文件。
六.Install/DDInstall节
Install/DDInstall节指明需复制的文件、想注册表中添加的内容等信息,其节名称由Models节指定。下表列出了其包含的常用项。
Install/DDInstall节中的常用项
项 |
说明 |
DriverVer |
指明驱动程序的版本信息,格式为:mm/dd/yyyy[,x.y.z] |
CopyFiles |
指明需复制的文件,格式为: CopyFiles=@filename|file-list-section[,file-list-section]... |
AddReg |
指明向注册表中添加的其他INF文件按,格式为: AddReg=add-registry-section[,add-registry-section]… |
Include |
指明安装时需要的其他INF文件,格式为: Include=filename.inf[,filename2.inf]… |
Needs |
指明安装时所需的特定INF文件,格式为: Needs=inf-section-name[,inf-section-name]… |
Delfiles |
指明需删除的文件,格式为: Delfiles=inf-section-name[,inf-section-name]… |
RenFiles |
指明需重命名的文件,格式为: Renfiles=inf-section-name[,inf-section-name]… |
DelReg |
指明需删除的注册表内容,格式为: DelReg=del-registry-section[,del-registry-section]… |
Install/DDInstall节中的常用项的详细介绍:
①CopyFiles项:它是Install/DDInstall节中的一个基本指令,用于指明需要复制的文件。其“filename”指出目标文件名;“file-list-section”是其创建的文件列表节,该节格式为
[file-list-section]
destination-file-name[,source-file-name][,temporary-file-name][,flag]
其中,“destination-file-name”指出目标文件名;“source-file-name”指出源文件名,如果其和目标文件名相同,则可忽略该参数;“temporary-file-name”指出复制操作过程中所需要的临时文件名,他只适用于Windows 98;“flag”指出该文件的一些处理方法,其取之情况如下表。
CopyFiles项中的flag参数
值 |
符号 |
说明 |
0x00000400 |
COPYFLG_REPLACEONLY |
仅替换目标目录中的文件 |
0x00000800 |
COPYFLG_NODECOMP |
复制并不解压缩 |
0x00000008 |
COPYFLG_FORCE_FILE_IN_USE |
将源文件赋值为临时文件名,以重新命名 |
0x00000010 |
COPYFLG_NO_OVERWRITE |
不替换原有文件 |
0x00001000 |
COPYFLG_REPLACE_BOOT_FILE |
强制用户重新引导系统 |
0x00002000 |
COPYFLG_NOPRUNE |
强制复制文件 |
0x00000020 |
COPYFLG_NO_VERSION_DIALOG |
不覆盖新版本的文件 |
0x00000004 |
COPYFLG_NOVERSIONCHECK |
可覆盖任何版本的文件 |
0x00000040 |
COPYFLG_OVERWRITE_ORDER_ONLY |
仅覆盖旧版本的文件 |
0x00000001 |
COPYFLG_WARN_IF_SKIP |
当用户跳过文件时发出警告 |
0x00000002 |
COPYFLG_NOSKIP |
不允许用户跳过文件 |
②AddReg项:它是Install/DDInstall节所必须包含的指令,用于指明需项注册表中添加的内容。其“add-registry-section”是它创建的添加注册表节,该节的格式为
[add-registry-section]
reg-root, [subkey], [value-entry-name], [flags], [value]
其中,“reg-root”指出注册表树的根目录,它的取值在下表中;“subkey”指出reg-root下的子目录(或称子键);“value-entry-name”指出要增加的注册表值;“flags”指出其对注册表的一些处理方法,取值在下面的flags表中;“value”指出新增加注册表值的数据。
AddReg项中的reg-root参数
值 |
说明 |
HKCR |
HKEY_CLASSES_ROOT |
HKCU |
HKEY_CURRENT_USER |
HKLM |
HKEY_LOCAL_MACHINE |
HKU |
HKEY_USER |
HKR |
被安装设备的注册表键 |
AddReg项中的flags参数
值 |
符号 |
说明 |
0x00000000 |
FLG_ADDREG_TYPE_SZ |
value为REG_SZ类型 |
0x00000001 |
FLG_ADDREG_BINVALUETYPE |
value为2进制数据 |
0x00000002 |
FLG_ADDREG_NOCLOBBER |
不替换已有注册表中的value |
0x00000004 |
FLG_ADDREG_DELVAL |
从注册表中删除subkey或 value-entry-name |
0x00000010 |
FLG_ADDREG_KEYONLY |
仅建立subkey,忽略value-entry-name 和value |
0x00000020 |
FLG_ADDREG_OVERWRITEONLY |
仅当value-entry-name时替换value |
0x00010000 |
FLG_ADDREG_TYPE_MULTI_SZ |
value为REG_MULTI_SZ类型 |
0x00000008 |
FLG_ADDREG_APPEND |
添加value至已有注册表值 |
0x00020000 |
FLG_ADDREG_TYPE_EXPEND_SZ |
value为REG_EXPAND_SZ类型 |
0x00010001 |
FLG_ADDREG_TYPE_DWORD |
value为REG_DWORD类型 |
0x00020001 |
FLG_ADDREG_TYPE_NONE |
value为REG_NONE类型(Windows2000) |
③DelFiles项:它是Install/DDInstall节中的可选指令,用于指明需删除的文件。其“file-list-section”是它创建的文件列表节,该节的格式为
[file-list-section]
destination-file-name[,,,flag]
其中,“destination-file-name”指出目标文件名;“flag”指出该文件的一些处理方法,其取值如下表。
DelFiles项中的flag参数
值 |
符号 |
说明 |
0x0000001 |
DELFLG_IN_USE |
在其安装处理操作完成后再删除该文件 |
0x0001000 |
DELFLG_IN_USE1 |
功能与DELFLG_IN_USE一样,仅适用Windows2000 |
④RenFiles项:它是Install/DDInstall节中的可选指令,用于指明需重命名的文件。其“file-list-section”是它创建的文件列表节,该节的格式为
[file-list-section]
new-dest-file-name, old-source-file-name
其中,“new-dest-file-name”指出该文件的新文件名;“old-source-file-name”指出其原有文件名。
⑤DelReg项:它是Install/DDInstall节中的可选指令,用于指明需从注册表中删除的内容。其“del-registry-section”是它创建的删除注册表节,该节的格式为
[del-registry-section]
reg-root, subkey [,value-entry-name]
其中,“reg-root”指出该注册表树中的根目录,取值与AddReg的ret-root相同; “subkey”指出reg-root下的子目录(或称子键);“value-entry-name”指出要删除的注册表值。
七、[install.Service]节
DDInstall.Services节指明驱动程序安装的详细信息,他只是用于Windows 2000.他的节名称为[install-section-name.Services],其“install-section-name”由Models节指定。下表列出了其包含的常用项。
DDInstall.Services节中的常用项
项 |
说明 |
AddService |
控制驱动程序的安装过程,格式为 AddService=ServiceName,[flags],service-install-section [,event-log-install-section[,[EventLogType][,EventName]]]… |
DelService |
删除一个或多个已有的驱动程序,格式为 DelService=ServiceName [,[flags][,[EventLogType][,EventName]]]… |
Include |
指明安装时所需的其他INF文件,格式为 Include =filename.inf [,filename2.inf]… |
Needs |
之敏感转世所需要的特定INF文件,格式为 Needs = inf-section-name[,inf-section-name]… |
主要项进行详细介绍。
①AddService项:它是DDInstall.Services节所必须包含的指令,用于控制设备驱动程序的安装过程。其“ServiceName”指出驱动程序的名字;“flags”指出一个或多个系统定义的标识,其取值情况如下表;“event-log-install-section”是其创建的事件日志安装,下表中列出了该节所包含的常用项;“service-install-section”是其创建的服务安装节,下表中列出了该节所包含的常用项;“EventLogType”指出事件日志的类型,其取值为System、Security和Application;“EventName”指出事件日志的名字。
AddService项的常用flags参数
值 |
符号 |
说明 |
0x00000002 |
SPSVCINST_ASSOCSERVICE |
指明其为PnP功能驱动程序 |
0x00000008 |
SPSVCINST_NOCLOBBER_DISPLAYNAME |
不覆盖指定服务的名字 |
0x00000100 |
SPSVCINST_NOCLOBBER_DESCRIPTION |
不覆盖指定服务的描述 |
0x00000010 |
SPSVCINST_NOCLOBBER_STARTTYPE |
不覆盖指定服务的启动类型 |
0x00000020 |
SPSVCINST_NOCLOBBER_ERRORCONTROL |
不覆盖指定服务的差错控制值 |
event-log-install-section节中的常用项
项 |
说明 |
AddReg |
指明向注册表中添加的内容,格式如下 AddReg=add-registry-section[,add-registry-section]… |
DelReg |
指明需删除的注册表内容,格式如下 DelReg=del-registry-section[,del-registry-section]… |
BitReg |
有效但几乎无用,格式如下 BitReg=bit-registry-section[,bit-registry-section]… |
DisplayName |
驱动程序的名字,为字符串值 |
Description |
驱动程序的描述,为字符串值 |
ServiceType |
驱动程序的类型,为特定16进制数 |
StartType |
驱动程序的启动类型,为特定16进制数 |
ErrorControl |
驱动程序的差错控制级别,为特定16进制数 |
ServiceBinary |
驱动程序的完整路径名:%dirid% /filename |
以下是对event-log-install-section节中的常用项的主要项进行详细介绍。
<1>ServiceType项:指明驱动程序的类型,取值情况如下表。
ServiceType项的取值
值 |
符号 |
说明 |
0x00000001 |
SERVICE_BOOT_START |
内核模式驱动程序 |
0x00000002 |
SERVICE_KERNEL_FILE_SYSTEM_DRIVER |
上层网络驱动程序或文件系统 |
0x00000010 |
SERVICE_WIN32_OWN_PROCESS |
Win32应用程序 |
0x00000020 |
SERVICE_WIN32_SHARE_PROCESS |
Win32应用程序 |
<2>StartType项:指明驱动程序的启动类型,其取值情况如下表。
StartType项的取值
值 |
符号 |
说明 |
0x0 |
SERVICE_BOOT_START |
由操作系统加载程序启动 |
0x1 |
SERVICE_SYSTEM_START |
由操作系统初始化过程中启动 |
0x2 |
SERVICE_AUTO_START |
由服务控制管理器启动 |
0x3 |
SERVICE_DEMAND_START |
由PnP管理器或服务控制管理器按需启动 |
0x4 |
SERVICE_DISABLE |
禁止启动 |
<3>ErrorControl项:指明驱动程序的差错控制级别,其取值情况如下表。
ErrorControl项的取值
值 |
符号 |
说明 |
0x0 |
SERVICE_ERROR_IGNORE |
不显示警告信息 |
0x1 |
SERVICE_ERROR_NORMAL |
显示警告信息 |
0x2 |
SERVICE_ERROR_SERVICE |
当驱动程序加载失败时,系统将使用其注册的LastKnownGood重试,并忽略其后的错误 |
0x3 |
SERVICE_ERROR_CRITICAL |
当驱动程序加载失败时,系统将使用其注册的LastKnownGood重试,并对其后的错误进行检验 |
②DelService项:它是DDInstall.Service节中的可选指令,用于删除一个或多个已有的设备驱动程序。其“ServiceName”指出驱动程序的名字;“flags”指出一个或多个系统定义的标识,取值见下表;“EventLogType”指出事件日志的类型,其取值为System、Security或Application;“EventName”指出事件日志的名字。
DelService项的flags参数
符号 |
说明 |
SPSVCINST_DELETEEVENTLOGENTRY |
删除与ServiceName有关的事件日志 |
SPSVCINST_STOPSERVICE |
在删除之前首先停止服务 |
八.String节
String节指明一些列字符串,其所含各项的格式为
strkey=[“]some string[“]
其中,“strkey”指出字符串的名字,它只能包含字母和数字;“some string”为字符串的内容。
USB开源项目
百合电子工作室曾在2009年推出了一个USB开源项目:Easy USB 51 Programer,此项目以开源的形式展示了USB通信的基础性内容、USB HID设备类固件程序开发及PC端应用程序开发、自定义USB设备类固件程序开发及PC端驱动程...
|
USB产品
EASY USB D12 是原EASY USB 51 PROGRAMER的升级版,是百合电子工作室历时一年精心设计的一款USB学习板/开发板,与老款相比,其实例更丰富,技术文档更详尽,更重要的是此款USB学习板还提供技术支持。......
|