?? 解剖inf文件的結構.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>INF是Device INFormation File的英文縮寫</title>
</head>
<body>
<div class="postTitle">
<a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/ttyp/archive/2005/07/21/197074.html">INF文件格式小結</a>
</div>
<div class="postText">
<div twffan="done">
INF是Device INFormation File的英文縮寫,是Microsoft公司為硬件設備制造商發布其驅動程序推出的一種文件格式,INF文件中包含硬件設備的信息或腳本以控制硬件操作。
</div>
<div twffan="done">
</div>
<div twffan="done">
<strong>INFI的功能</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
1 復制文件、刪除文件、或重新命名文件。<br>
2 新增或刪除注冊表(Registry)中的項目。<br>
3 修改重要的系統設置文件(如 Autoexec.bat、Config.sys、.INI
等)
</div>
<div twffan="done">
</div>
<div twffan="done">
<strong>INF的規則</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
INF是純文本文件,它是分節的,這點和INI文件類似,每節以"[]"擴起來,每一個節名最長為255個字符
(Windows 2000/XP/2003操作系統中)或28個字符(Windows 98操作系統中)。在節與節之間的內容叫條目,每一個節又是由許多的條目組成的,每一個條目都由=分開,如a="b"。如果每一個條目的等號后有多個值,
則每一個值之間用","號分隔開。INF對大小寫不敏感,行注釋語句命令是";",類似VB里的'。如果一行寫不下,使用"\"來換行。
</div>
<div twffan="done">
</div>
<div twffan="done">
<strong>INF的運行</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
.INF文件是由Windows的SetupAPI解釋執行的腳本文件,它的運行過程很簡單,是一種線性的執行,
線性的意思就是.INF文件的運行過程不存在分支語句,也就是沒有條件語句,一旦開始執行,就是沿著固定的路線運行。它的運行是按照節為單位來執行的,從
某一個[Install]節開始執行,從上到下執行該節中的條目,如果該條目是一個節,那么就一條條執行子節中的條目,如此遞歸執行。在WINDOW上運
行只要右擊這個文件,點擊安裝即可。
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
<strong style="font-size: 12pt;">INF的語法結構</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
<span style="color: rgb(0, 0, 255);">;指定版本和簽名節<br>
</span>[VERSION]<br>
;系統根據Signuture看是不是適合當前版本,如果適合的話就執行,否則不執行,當然強制安裝是可以的<br>
;用于WIN9X<br>
Signature="$CHICAGO$"<br>
;WINNT+<br>
;Signature="$Windows NT$"
</div>
<div twffan="done">
</div>
<div twffan="done">
;指定安裝文件布局<br>
該行是可選的,如果沒有提供布局信息文件,則在INF文件內必須包含[SourceDisksNames]和[SourceDisksFiles]節<br>
LayoutFile=filename.inf
</div>
<div twffan="done">
</div>
<div twffan="done">
[SourceDisksNames]節<br>
[SourceDisksNames]節羅列源文件所在盤符序列碼、盤描述符、盤卷標號和盤序列號。<br>
[SourceDisksNames]節內語句的語法為:<br>
disk-ordinal=“disk-description”,disk-label,disk-serial-number<br>
其中disk-ordinal為必選項,是盤符序列碼,標識一個源盤,具有惟一性,一般可設置為從1開始遞增的整數,0不是一個有效的盤符序列碼。當存在多個源盤時,盤符序列碼之間不能重復。<br>
disk-description為必選項,是盤描述符,用雙引號括起的字符串或字符串宏描述盤的內容或目的。安裝引擎將該字符串顯示在對話框內以提示用戶。<br>
disk-label為源盤的卷標識。<br>
disk-serial-number未使用,但必須被設置為0。<br>
[SourceDisksFiles]節<br>
[SourceDisksFiles]節指定安裝時使用的源文件和盤符序列碼、盤描述符。
[SourceDisksFiles]節內語句的語法為:<br>
file-name=disk-number[,subdir] [,file-size]<br>
其中file-name為必選項,是源盤上文件的名稱。<br>
disk-number是包含file-name指定文件所在源盤的盤符序列碼,該盤符序列碼需在[SourceDisksNames]節中列出,并大于或等于1。<br>
Subdir為可選項,指定文件所在源盤的子目錄,如省略則源盤為缺省安裝路徑。<br>
file-size為可選項,表明文件的大小,以字節為單位。
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
<strong>[DestinationDirs]</strong><br>
;指定CopyFiles、RenFiles或DelFiles入口的缺省操作目錄<br>
;語法file-list-section=LDID,[Subdir]<br>
;LDID列表如下:<br>
;01 ;current directory<br>
;04 ;backup directory<br>
;10 ;windows directory<br>
;11 ;system dir<br>
;12 ;iosubsys<br>
;13 ;command<br>
;14 ;control panel directory<br>
;15 ;printers directory<br>
;16 ;workgrou dir<br>
;17 ;inf dir<br>
;18 ;help dir<br>
;19 ;administration dir<br>
;20 ;fonts<br>
;21 ;viewers<br>
;22 ;vmm32<br>
;23 ;color dir<br>
;25 ;shared dir<br>
;26 ;winboot<br>
;28 ;host winboot<br>
;30 ;root of boot drive<br>
;31 ;root of host drive of a virtual boot drive<br>
;32 ;old windows dir if exists
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
;以下例子為安裝到window\web目錄下<br>
;DefaultDestDir=10,"web"
</div>
<div twffan="done">
</div>
<div twffan="done">
<strong>[Install]<br>
</strong>提供了一個INF文件安裝過程的總覽,它識別文件內其他包含安裝信息節的詳細動作,是Windows內建安裝函數識別安裝過程和內容的真正入口[Install]
</div>
<div twffan="done">
</div>
<div twffan="done">
;[Install]節分[DefaultInstall]和[OtherInstall]兩類<br>
;[DefaultInstall]節節名DefaultInstall如前面表格內容所述被顯式地在注冊表中指定。<br>
;該節也是系統獲取INF文件中安裝信息的首要入口,當用戶右擊INF文件選“安裝”時該節內容被執行。<br>
;[OtherInstall]與[DefaultInstall]節遵循相同的語法,但必須被顯式地調用,常被用來定義反安裝動作
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
;缺省安裝節<br>
<strong>[DefaultInstall]</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
;指明添加注冊表的子節,等號后面的為自定義節名,例子見[add]節<br>
ADDREG=add
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
;指明要刪除的注冊表子節,等號后面的為自定義節名<br>
DELREG=del
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
;指明要要復制的文件子節,用于安裝,Copyfiles命令可以替換系統正在訪問的文件。這些功能通過普通的del和copy命令都無法實現<br>
CopyFiles=cfile
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
;指明要要刪除的文件子節,用于反安裝,多個節以逗號隔開,該命令如果發現要刪除的文件被鎖定,就會把文件放到系統刪除隊列中排隊<br>
;等系統重啟動的時候,該文件就自動被刪除了<br>
<strong>DelFiles=刪除文件段<br>
</strong>;[刪除文件段]<br>
;文件名列表<br>
;例子:<br>
;a.exe<br>
;b.sys
</div>
<div twffan="done">
</div>
<div twffan="done">
;重命名文件段<br>
<strong>RenFiles=重命名文件段</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
;[重命名文件段]<br>
;語法:<br>
;[file-list-section]<br>
;new-file-name,old-file-name<br>
;file1,file2 ;修改文件名file1為file2
</div>
<div twffan="done">
</div>
<div twffan="done">
<br>
;更新INI文件段內容子節<br>
<strong>UpdateInis = 更新INI文件段</strong>
</div>
<div twffan="done">
</div>
<div twffan="done">
;[更新INI文件段]<br>
;ini-file, ini-section, [old-ini-entry], [new-ini-entry], [flags]<br>
;ini-file 包含要更改條目的 .ini 文件名<br>
;ini-section 包含要更改條目的節名<br>
;old-ini-entry 可選,常用形式為 Key=Value<br>
;new-ini-entry 可選,常用形式為<br>
;Key=Value。flags 是可選操作標記
</div>
<div twffan="done">
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -