日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]INF文件的節(jié)?????? INF文件是一個文本文件,由許多按層次結構排列的節(jié)組成,他們以方括號中的節(jié)名稱開始,如[Version]、[Manufacturer]等,后面是改接所含有的各個項,如Sig

INF文件的節(jié)

?????? INF文件是一個文本文件,由許多按層次結構排列的節(jié)組成,他們以方括號中的節(jié)名稱開始,如[Version]、[Manufacturer]等,后面是改接所含有的各個項,如Signature、DriverVer等。節(jié)中各項的基本定義格式為

entry=value[,value…]

?????? 其中,“entry”標示項名稱,“value”標示該想的取值。節(jié)名和項名稱都不區(qū)分大小寫,且對于Windows 98,其必須小于28個字符;對于Windows 2000,其長度的最大值為255個字節(jié)。下表是INF文件中常用的節(jié)。

INF文件中常用的節(jié)

節(jié)

說明

Version

INF文件的開始

SourceDisksNames

指明去的那個程序所在的磁盤或CD-ROM

SourceDisksFiles

指明驅動程序的文件名

Destination

指明INF文件和驅動程序的目標文件

Manufacturer

指明供應商及其對應Models節(jié)的名稱

Models

指明Install/DDInstall節(jié)的名稱、設備的硬件ID等信息

Install(Windows 98)

Install(Windows 2000)

指明需復制的文件、想注冊表中添加的內容等信息

DDInstall.Services

僅適用于Windows 2000

指明驅動程序安裝的詳細信息

String

指明一系列字符串

?

1Version節(jié)

?????? Version節(jié)通常作為INF文件的開始,下表列出了其包含的各項。所有INF文件都必須含有Version節(jié)及其Signature項

Version節(jié)中的各項

說明

Signature

指明驅動程序的簽名,其取值為:$Windows NT$、$Windows 95$、$Chicago$、

Class

指明驅動程序所屬的類別

ClassGuid

指明設備類的GUID,其格式為:{nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnn}

Provider

指明該INF文件的供應商

LayoutFile

僅由操作系統(tǒng)內部提供的INF文件使用

CatalogFile

指明數(shù)字簽名文件的文件名,其擴展名為.cat

DriverVer

指明驅動程序的版本信息,其格式為:mm/dd/yyyy[,x.y.v.z]

注:①n代表一個16進制數(shù)

?????? 下面對主要的各項進行詳細介紹。

①.Signature項:指明驅動程序的簽名。對于Windows 98和Windows 2000下的USB設備驅動程序,該項的取值通常為“$Chicago$”。

②.Class和ClassGuid項:指明驅動程序所屬的設備類別及其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

監(jiān)視器

Mouse

4d36e96f-e325-11ce-bfc1-08002be10318

鼠標

Net

4d36e972-e325-11ce-bfc1-08002be10318

網(wǎng)絡適配器

Ports

4d36e978-e325-11ce-bfc1-08002be10318

端口(COM&LPT)

Printer

4d36e979-e325-11ce-bfc1-08002be10318

打印機

System

4d36e97d-e325-11ce-bfc1-08002be10318

系統(tǒng)設備

TapeDrive

6D807884-7D21-11CF-801C-08002BE10318

磁帶驅動器

USB

36FC9E60-C465-11CF-8056-444553540000

USB

③.DriverVer項:指明驅動程序的版本信息。其“mm/dd/yyyy”代表月/日/年;“x.y.v.z”代表驅動程序的版本號,它是可選的。

2.SourceDisksNames節(jié)

?????? SourceDisksNames節(jié)指明設備驅動程序所在的磁盤或CD-ROM,其各項的格式如下:

diskid=disk-description,disk-label,disk-serial-number?? (Windows 98)

diskid=disk-description[,[tagfile][,unused,path]]? (Windows 2000)

?????? 其中,“disked”指出磁盤驅動器的編號,它是正整型數(shù),通常從1開始,且不能重復;“disk-description”表示磁盤的描述信息,他通常為一個字符串。對于Windows 98,“disk-label”指出磁盤的卷標;“disk-serial-numbe”指出磁盤的序列號。對于Windows 2000,“tagfile”指出磁盤標簽文件的文件名;“unused”保留未用;“path”指出驅動程序所在的路徑;“[ ]”表示可選參數(shù)。

3.SourceDisksFiles節(jié)

?????? SourceDisksFiles節(jié)指明設備驅動程序的文件全路徑,其各項格式如下:

filename=diskid[,subdir] (Windows 98)

filename=diskid[,[,subdir][,size]]?? (Windows 2000)

?????? 其中,“filename”指出驅動程序的文件名;“diskid”指出磁盤驅動器的編號;“subdir”指出該文件在磁盤上的路徑;“size”指出該文件未經(jīng)壓縮時的大小,以字節(jié)為單位。

4.DestinationDirs節(jié)

?????? DestinationDirs節(jié)指明INF文件和設備驅動程序的目標目錄。當INF文件使用CopyFiles、DelFiles、RenFiles指令時,則必須包含該節(jié)。其各項的格式如下:

DefaultDestDir=dirid[,subdir]

File-list-section=dirid[,subdir]

?????? 其中,“DefaultDestDir”是一個項名稱,代表文件復制、刪除、重命名操作的缺色很難干目標目錄;“file-list-section”指出CopyFiles、DelFiles、RenFiles指令所引用的節(jié);“dirid”指出目標目錄值,見下表;“subdir”指出dirid目錄下的子目錄。

DestinationDirs節(jié)中的常用dirid

dirid

目標目錄

dirid

目標目錄

10

Windows目錄:%windir%

17

INF目錄

11

系統(tǒng)目錄

Windows 98:%windir%/system

Windows 2000:%windir%/system32

18

幫助目錄

20

字體目錄

12

驅動程序目錄

Windows 98:%windir%/system/IoSubsys

Windows 2000:%windir%/system32/drivers

23

顏色目錄

24

應用程序目錄(Windows2000)

13

命令目錄(Windows98)

25

共享目錄

14

控制面板目錄(Windows98)

50

%windir%/system(Windows2000)

15

打印機目錄(Windows98)

54

Ntldr.exe和osloader.exe所在的目錄(Windows2000)

16

工作組目錄(Windows98)

55

打印處理器目錄(Windows2000)

5.Manufacturer節(jié)

?????? Manufacturer節(jié)指明供應商及其對應Models接的名稱,其各項的格式如下:

%strkey%=models-section-name

?????? 其中,“strkey”代表設備制造的名字,其字符串值在String節(jié)中定義;“models-section-name”指出Models節(jié)的名稱。

6.Models節(jié)

?????? Models節(jié)指明Install/DDInstall節(jié)的名稱、設備的硬件ID和兼容ID等信息,其節(jié)名稱由Manufacturer節(jié)指定。其各項的格式如下:

device-description=install-section-name,hw-id[,compatiable-id…]

?????? 其中,“device-description”指出設備的表述信息,他可以是一個字符串,也可以使一個%strkey%;“install-section-name”指出Install/DDInstall節(jié)的名稱;“hw-id”指出設備的硬件ID;“compatiable-id”指出設備的兼容ID。

7. Install/DDInstall節(jié)

?????? Install/DDInstall節(jié)指明需復制的文件、想注冊表中添加的內容等信息,其節(jié)名稱由Models節(jié)指定。下表列出了其包含的常用項。

Install/DDInstall節(jié)中的常用項

說明

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節(jié)中的常用項的詳細介紹。

①???? CopyFiles項:它是Install/DDInstall節(jié)中的一個基本指令,用于指明需要復制的文件。其“filename”指出目標文件名;“file-list-section”是其創(chuàng)建的文件列表節(jié),該節(jié)格式為

[file-list-section]

destination-file-name[,source-file-name][,temporary-file-name][,flag]

?????? 其中,“destination-file-name”指出目標文件名;“source-file-name”指出源文件名,如果其和目標文件名相同,則可忽略該參數(shù);“temporary-file-name”指出復制操作過程中所需要的臨時文件名,他只適用于Windows 98;“flag”指出該文件的一些處理方法,其取之情況如下表。

CopyFiles項中的flag參數(shù)

符號

說明

0x00000400

COPYFLG_REPLACEONLY

僅替換目標目錄中的文件

0x00000800

COPYFLG_NODECOMP

復制并不解壓縮

0x00000008

COPYFLG_FORCE_FILE_IN_USE

將源文件賦值為臨時文件名,以重新命名

0x00000010

COPYFLG_NO_OVERWRITE

不替換原有文件

0x00001000

COPYFLG_REPLACE_BOOT_FILE

強制用戶重新引導系統(tǒng)

0x00002000

COPYFLG_NOPRUNE

強制復制文件

0x00000020

COPYFLG_NO_VERSION_DIALOG

不覆蓋新版本的文件

0x00000004

COPYFLG_NOVERSIONCHECK

可覆蓋任何版本的文件

0x00000040

COPYFLG_OVERWRITE_ORDER_ONLY

僅覆蓋舊版本的文件

0x00000001

COPYFLG_WARN_IF_SKIP

當用戶跳過文件時發(fā)出警告

0x00000002

COPYFLG_NOSKIP

不允許用戶跳過文件

②???? AddReg項:它是Install/DDInstall節(jié)所必須包含的指令,用于指明需項注冊表中添加的內容。其“add-registry-section”是它創(chuàng)建的添加注冊表節(jié),該節(jié)的格式為

[add-registry-section]

reg-root, [subkey], [value-entry-name], [flags], [value]

其中,“reg-root”指出注冊表樹的根目錄,它的取值在下表中;“subkey”指出reg-root下的子目錄(或稱子鍵);“value-entry-name”指出要增加的注冊表值;“flags”指出其對注冊表的一些處理方法,取值在下面的flags表中;“value”指出新增加注冊表值的數(shù)據(jù)。

AddReg項中的reg-root參數(shù)

說明

HKCR

HKEY_CLASSES_ROOT

HKCU

HKEY_CURRENT_USER

HKLM

HKEY_LOCAL_MACHINE

HKU

HKEY_USER

HKR

被安裝設備的注冊表鍵

AddReg項中的flags參數(shù)

符號

說明

0x00000000

FLG_ADDREG_TYPE_SZ

value為REG_SZ類型

0x00000001

FLG_ADDREG_BINVALUETYPE

value為2進制數(shù)據(jù)

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節(jié)中的可選指令,用于指明需刪除的文件。其“file-list-section”是它創(chuàng)建的文件列表節(jié),該節(jié)的格式為

[file-list-section]

destination-file-name[,,,flag]

?????? 其中,“destination-file-name”指出目標文件名;“flag”指出該文件的一些處理方法,其取值如下表。

DelFiles項中的flag參數(shù)

符號

說明

0x0000001

DELFLG_IN_USE

在其安裝處理操作完成后再刪除該文件

0x0001000

DELFLG_IN_USE1

功能與DELFLG_IN_USE一樣,僅適用Windows2000

④RenFiles項:它是Install/DDInstall節(jié)中的可選指令,用于指明需重命名的文件。其“file-list-section”是它創(chuàng)建的文件列表節(jié),該節(jié)的格式為

[file-list-section]

new-dest-file-name, old-source-file-name

?????? 其中,“new-dest-file-name”指出該文件的新文件名;“old-source-file-name”指出其原有文件名。

⑤DelReg項:它是Install/DDInstall節(jié)中的可選指令,用于指明需從注冊表中刪除的內容。其“del-registry-section”是它創(chuàng)建的刪除注冊表節(jié),該節(jié)的格式為

[del-registry-section]

reg-root, subkey [,value-entry-name]

?????? 其中,“reg-root”指出該注冊表樹中的根目錄,取值與AddReg的ret-root相同; “subkey”指出reg-root下的子目錄(或稱子鍵);“value-entry-name”指出要刪除的注冊表值。

8.DDInstall.Services節(jié)

?????? DDInstall.Services節(jié)指明驅動程序安裝的詳細信息,他只是用于Windows 2000.他的節(jié)名稱為[install-section-name.Services],其“install-section-name”由Models節(jié)指定。下表列出了其包含的常用項。

DDInstall.Services節(jié)中的常用項

說明

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節(jié)所必須包含的指令,用于控制設備驅動程序的安裝過程。其“ServiceName”指出驅動程序的名字;“flags”指出一個或多個系統(tǒng)定義的標識,其取值情況如下表;“event-log-install-section”是其創(chuàng)建的事件日志安裝,下表中列出了該節(jié)所包含的常用項;“service-install-section”是其創(chuàng)建的服務安裝節(jié),下表中列出了該節(jié)所包含的常用項;“EventLogType”指出事件日志的類型,其取值為System、Security和Application;“EventName”指出事件日志的名字。

AddService項的常用flags參數(shù)

符號

說明

0x00000002

SPSVCINST_ASSOCSERVICE

指明其為PnP功能驅動程序

0x00000008

SPSVCINST_NOCLOBBER_DISPLAYNAME

不覆蓋指定服務的名字

0x00000100

SPSVCINST_NOCLOBBER_DESCRIPTION

不覆蓋指定服務的描述

0x00000010

SPSVCINST_NOCLOBBER_STARTTYPE

不覆蓋指定服務的啟動類型

0x00000020

SPSVCINST_NOCLOBBER_ERRORCONTROL

不覆蓋指定服務的差錯控制值

event-log-install-section節(jié)中的常用項

說明

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進制數(shù)

StartType

驅動程序的啟動類型,為特定16進制數(shù)

ErrorControl

驅動程序的差錯控制級別,為特定16進制數(shù)

ServiceBinary

驅動程序的完整路徑名:%dirid% /filename

一下是對event-log-install-section節(jié)中的常用項的主要項進行詳細介紹。

ServiceType項的取值

符號

說明

0x00000001

SERVICE_BOOT_START

內核模式驅動程序

0x00000002

SERVICE_KERNEL_FILE_SYSTEM_DRIVER

上層網(wǎng)絡驅動程序或文件系統(tǒng)

0x00000010

SERVICE_WIN32_OWN_PROCESS

Win32應用程序

0x00000020

SERVICE_WIN32_SHARE_PROCESS

Win32應用程序

StartType項的取值

符號

說明

0x0

SERVICE_BOOT_START

由操作系統(tǒng)加載程序啟動

0x1

SERVICE_SYSTEM_START

由操作系統(tǒng)初始化過程中啟動

0x2

SERVICE_AUTO_START

由服務控制管理器啟動

0x3

SERVICE_DEMAND_START

由PnP管理器或服務控制管理器按需啟動

0x4

SERVICE_DISABLE

禁止啟動

ErrorControl項的取值

符號

說明

0x0

SERVICE_ERROR_IGNORE

不顯示警告信息

0x1

SERVICE_ERROR_NORMAL

顯示警告信息

0x2

SERVICE_ERROR_SERVICE

當驅動程序加載失敗時,系統(tǒng)將使用其注冊的LastKnownGood重試,并忽略其后的錯誤

0x3

SERVICE_ERROR_CRITICAL

當驅動程序加載失敗時,系統(tǒng)將使用其注冊的LastKnownGood重試,并對其后的錯誤進行檢驗

②???? DelService項:它是DDInstall.Service節(jié)中的可選指令,用于刪除一個或多個已有的設備驅動程序。其“ServiceName”指出驅動程序的名字;“flags”指出一個或多個系統(tǒng)定義的標識,取值見下表;“EventLogType”指出事件日志的類型,其取值為System、Security或Application;“EventName”指出事件日志的名字。

DelService項的flags參數(shù)

符號

說明

SPSVCINST_DELETEEVENTLOGENTRY

刪除與ServiceName有關的事件日志

SPSVCINST_STOPSERVICE

在刪除之前首先停止服務

9String節(jié)

?????? String節(jié)指明一些列字符串,其所含各項的格式為

strkey=[“]some string[“]

其中,“strkey”指出字符串的名字,它只能包含字母和數(shù)字;“some string”為字符串的內容。


附上《windows驅動開發(fā)技術詳解》的一個例子


[cpp]?view plain?copy ;---------?Version?Section?---------------------------------------------------?? ?? [Version]?? Signature="$CHICAGO$";?? Provider=Zhangfan_Device?? DriverVer=11/1/2007,3.0.0.3?? ?? ;?If?device?fits?one?of?the?standard?classes,?use?the?name?and?GUID?here,?? ;?otherwise?create?your?own?device?class?and?GUID?as?this?example?shows.?? ?? Class=ZhangfanDevice?? ClassGUID={EF2962F0-0D55-4bff-B8AA-2221EE8A79B0}?? ?? ?? ;---------?SourceDiskNames?and?SourceDiskFiles?Section?-----------------------?? ?? ;?These?sections?identify?source?disks?and?files?for?installation.?They?are?? ;?shown?here?as?an?example,?but?commented?out.?? ?? [SourceDisksNames]?? 1?=?"HelloWDM",Disk1,,?? ?? [SourceDisksFiles]?? HelloWDM.sys?=?1,MyDriver_Check,?? ?? ;---------?ClassInstall/ClassInstall32?Section?-------------------------------?? ?? ;?Not?necessary?if?using?a?standard?class?? ?? ;?9X?Style?? [ClassInstall]?? Addreg=Class_AddReg?? ?? ;?NT?Style?? [ClassInstall32]?? Addreg=Class_AddReg?? ?? [Class_AddReg]?? HKR,,,,%DeviceClassName%?? HKR,,Icon,,"-5"?? ?? ;---------?DestinationDirs?Section?-------------------------------------------?? ?? [DestinationDirs]?? YouMark_Files_Driver?=?10,System32Drivers?? ?? ;---------?Manufacturer?and?Models?Sections?----------------------------------?? ?? [Manufacturer]?? %MfgName%=Mfg0?? ?? [Mfg0]?? ?? ;?PCI?hardware?Ids?use?the?form?? ;?PCIVEN_aaaa&DEV_bbbb&SUBSYS_cccccccc&REV_dd?? ;改成你自己的ID?? %DeviceDesc%=YouMark_DDI,?PCIVEN_9999&DEV_9999?? ?? ;----------?DDInstall?Sections?-----------------------------------------------?? ;?---------?Windows?9X?-----------------?? ?? ;?Experimentation?has?shown?that?DDInstall?root?names?greater?than?19?characters?? ;?cause?problems?in?Windows?98?? ?? [YouMark_DDI]?? CopyFiles=YouMark_Files_Driver?? AddReg=YouMark_9X_AddReg?? ?? [YouMark_9X_AddReg]?? HKR,,DevLoader,,*ntkern?? HKR,,NTMPDriver,,HelloWDM.sys?? HKR,?"Parameters",?"BreakOnEntry",?0x00010001,?0?? ?? ;?---------?Windows?NT?-----------------?? ?? [YouMark_DDI.NT]?? CopyFiles=YouMark_Files_Driver?? AddReg=YouMark_NT_AddReg?? ?? [YouMark_DDI.NT.Services]?? Addservice?=?HelloWDM,?0x00000002,?YouMark_AddService?? ?? [YouMark_AddService]?? DisplayName?=?%SvcDesc%?? ServiceType?=?1?;?SERVICE_KERNEL_DRIVER?? StartType?=?3?;?SERVICE_DEMAND_START?? ErrorControl?=?1?;?SERVICE_ERROR_NORMAL?? ServiceBinary?=?%10%System32DriversHelloWDM.sys?? ?? [YouMark_NT_AddReg]?? HKLM,?"SystemCurrentControlSetServicesHelloWDMParameters",?? "BreakOnEntry",?0x00010001,?0?? ?? ?? ;?---------?Files?(common)?-------------?? ?? [YouMark_Files_Driver]?? HelloWDM.sys?? ?? ;---------?Strings?Section?---------------------------------------------------?? ?? [Strings]?? ProviderName="Zhangfan."?? MfgName="Zhangfan?Soft"?? DeviceDesc="Hello?World?WDM!"?? DeviceClassName="Zhangfan_Device"?? SvcDesc="Zhangfan"??


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉