Share via


INF LogConfig 指示詞

警告

從 Windows 11 22H2 版開始,使用此指示詞的驅動程式套件不再符合硬體開發人員中心的簽章資格。

通用驅動程式套件Windows 驅動程式 無法使用這個指示詞。

LogConfig 指示詞會參考一或多個 INF 寫入器定義的區段,每個區段都會指定硬體資源的邏輯組態 - 中斷要求行、記憶體範圍、I/O 埠,以及裝置可以使用的 DMA 通道。 每個 log-config-section 都會指定裝置可以使用的一組替代總線相對硬體資源。

[DDInstall] | 
[DDInstall.LogConfigOverride] 
  
LogConfig=log-config-section[,log-config-section]...

非 PnP 裝置的 INF 檔案會使用此指示詞來建立基本組態。

PnP 裝置的 INF 檔案只會使用此指示詞來建立覆寫設定。

LogConfig 指示詞所參考的每個具名區段都有下列形式:

[log-config-section]
 
ConfigPriority=priority-value[,config-type]
[DMAConfig=[DMAattrs:]DMANum[,DMANum]...]
[IOConfig=io-range[,io-range]...]
[MemConfig=mem-range[,mem-range]...]
[IRQConfig=[IRQattrs:]IRQNum[,IRQNum]...]
[PcCardConfig=ConfigIndex[:[MemoryCardBase1][:MemoryCardBase2]][(attrs)]]
[MfCardConfig=ConfigRegBase:ConfigOptions[:IoResourceIndex][(attrs)]...]
...

項目

ConfigPriority=priority-value
指定此邏輯組態的優先順序值,如下所示:

期望
已設定最理想的軟體。

NORMAL
軟體設定,比 DESIRED 還低。 這是典型的設定。

如果 log-config-section 是在 DDInstall 中定義,則應該指定 NORMAL。LogConfigOverride 區段,而且無法指定 任何組態類型 值。

理想
軟式設定,比 NORMAL 還低。

HARDRECONFIG
需要跳躍點變更才能重新設定。

HARDWIRED
無法變更。

RESTART
需要重新啟動才會生效。

重新啟動
這與 RESTART 相同。

POWEROFF
需要電源迴圈才會生效。

DISABLED
硬體/裝置已停用。

DMAConfig=[DMAattrs:]DMANum[**,**DMANum]...]
如果裝置在只有 8 位 DMA 通道的總線上連線,且裝置使用標準系統 DMA,DMAattrs 是選擇性的。 否則,它可以是下列其中一個字母:

Letter 意義
D 32 位 DMA
W 16 位 DMA
N 8 位 DMA

如果裝置使用總線主機 DMA,您必須使用 M 搭配下列其中一個 (互斥) 字母,指出使用的 DMA 通道類型: ABF。如果未指定 ABF ,則會假設標準 DMA 通道。

DMANum 會將一或多個總線相對 DMA 通道指定為十進位數,每個通道會以逗號分隔 (,) 。

IOConfig=io-range[io-range]...
以下列任一形式指定裝置的一或多個 I/O 連接埠範圍:

start-end[ ([decode-mask][:alias-offset][:attr]) ] (Type 1 I/O range)

開始
將 I/O 連接埠範圍的起始位址指定為 64 位十六進位位址。

end
指定 I/O 連接埠範圍的結束位址,也可以指定為 64 位十六進位位址。

decode-mask
定義別名類型,而且可以是下列任一項:

遮罩值 意義 IOR_Alias值
3ff 10 位譯碼 0x04
fff 12 位譯碼 0x10
ffff 16 位譯碼 0x00
0 正譯碼 0xFF

alias-offset
未使用。

attr
如果指定的範圍位於系統記憶體中,則指定字母 M 。 如果省略,則指定的範圍位於 I/O 埠空間中。

大小@min-max[%align-mask][ ([decode-mask][alias-offset][attr]) ] (Type 2 I/O range)

size
將 I/O 連接埠範圍所需的位元元數目指定為 32 位十六進位值。

min
將 I/O 連接埠範圍的最低可能起始位址指定為 64 位十六進位位址。

max
將 I/O 連接埠範圍的最高可能結束位址指定為 64 位十六進位位址。

align-mask
選擇性地指定在位 AND 運算中使用的 64 位掩碼,以在整數 (上對齊 I/O 埠範圍的開頭,通常是 32 位或 64 位) 位址界限。

decode-mask
定義別名類型,而且可以是下列任一項:

遮罩值 意義 IOR_Alias值
3ff 10 位譯碼 0x04
fff 12 位譯碼 0x10
ffff 16 位譯碼 0x00
0 正譯碼 0xFF

alias-offset
未使用。

attr
如果指定的範圍位於系統記憶體中,則指定字母 M 。 如果省略,則指定的範圍位於 I/O 埠空間中。

MemConfig=mem-range[mem-range]...
以下列其中一種形式指定裝置的一或多個記憶體範圍:

start-end[(attr)] | size@min-max[%align-mask][(attr)]

開始
將裝置記憶體範圍的起始 (總線相對) 實體位址指定為64位十六進位值。

end
指定記憶體範圍的結束實體位址,也可以指定為64位十六進位值。

attr
將記憶體範圍的屬性指定為下列一或多個字母:

Letter 意義
R 唯讀
W 僅限寫入
烏爾曼 讀取/寫入
C 允許合併寫入
H 可快取
F 預先擷取
D 卡片譯碼位址是32位,而不是24位

如果同時指定 R 和 W,或未指定 R 和 W ,則會假設為讀取 / 寫入。

size
將記憶體範圍中所需的位元元組數目指定為32位十六進位值。

min
將裝置記憶體範圍的最低可能起始位址指定為64位十六進位值。

max
將記憶體範圍的最高可能結束位址指定為64位十六進位值。

align-mask
選擇性地指定位 AND 運算中使用的 64 位掩碼,以在整數 (上對齊裝置記憶體範圍的開頭,通常是 64 位) 位址界限。

如果省略 align-mask,則預設記憶體對齊方式位於 4K 界限 (FFFFF000) 。

IRQConfig=[IRQattrs:]IRQNum[IRQNum]...
如果裝置使用總線相對、邊緣觸發的 IRQ,則會省略 IRQattrs。 否則,請指定 L 來指出層級觸發的 IRQ 和 LS ,如果裝置可以共用此專案中列出的 IRQ 行。

IRQNum 指定裝置可以使用的一或多個總線相對 IRQ 作為十進位數,每個數位會以逗號分隔 (,) 。

PcCardConfig=ConfigIndex[[MemoryCardBase1][:MemoryCardBase2]][ (attrs) ]
設定 CardBus 快取器和/或建立最多兩個永久記憶體視窗,以對應至裝置的屬性空間。 驅動程式可以使用記憶體視窗從ISR存取屬性空間。 以十六進位格式指定所有數值。

PcCardConfig 專案的元素如下所示:

ConfigIndex
指定PCMCIA總線上裝置的8位PCMCIA組態索引。

MemoryCardBase1
選擇性地指定第一個記憶體視窗的32位基位址。

MemoryCardBase2
選擇性地指定第二個記憶體視窗的32位基位址。

attrs
選擇性地指定裝置的一或多個屬性,並以空格分隔。 無效的屬性規範會使整個 PcCardConfig 專案失效。 如果提供特定屬性的多個規範,則屬性會套用至裝置的個別 I/O 或記憶體視窗。 如果只提供一個規範,則該屬性會套用至所有視窗 (請參閱下列範例) 。

具體而言,如果提供多個規範,則從左至右找到讀取的第一個規範會套用至第一個視窗,而下一個規範則套用至第二個視窗。 最多可以由單一 PcCardConfig 專案控制兩個 I/O 視窗和兩個記憶體視窗。 如果裝置有兩個以上的記憶體視窗,則必須包含第二個 PcCardConfig 專案。

屬性包括:

屬性 Description
W 16 位 I/O 資料路徑。

如果 INF 指定 LogConfig 指示詞,則預設值為 8 位。 如果未指定 LogConfig 指示詞,驅動程式會使用 16 位 I/O。
Sn ~IOCS16 來源。

如果 n 是 0,~IOCS16 是以數據大小位的值為基礎。 如果 n 是 1,~IOCS16 是以來自裝置的 ~IOIS16 訊號為基礎。 預設值為 S1。
Zn I/O 8 位,零等候狀態。

如果 n 為 1,則 8 位 I/O 存取會以零額外的等候狀態發生。 如果 n 是 0,則存取會以額外的等候狀態發生。 此旗標對16位I/O沒有意義。 預設值為 Z0。
Xln I/O 等候狀態。

如果 n 是 1,16 位系統存取就會發生一個額外的等候狀態。 預設值為 Xl1。
M 16 位記憶體資料路徑。 預設值為8位。
M8 8 位記憶體數據路徑。
XMn 記憶體等候狀態,其中 n 可以是 0、1、2 或 3。

這個值會決定 16 位存取記憶體視窗的額外等候狀態數目。 預設值為 XM3。
A 要對應為屬性記憶體的記憶體範圍。
C 要對應為通用記憶體 (預設) 的記憶體範圍。

例如, (WB CA M XM1 XI0) attrs 值會轉譯為下列內容:

1st I/O window is 16-bit

2nd I/O window 8-bit

1st memory window is common

2nd memory window is attribute

Memory is 16-bit

One wait state on memory windows

Zero wait states on I/O windows

MfCardConfig=ConfigRegBaseConfigOptions[IoResourceIndex][ (attrs) ]...
指定一組態緩存器的屬性-記憶體位置,用於一個多函式裝置的函式,如下所示:

ConfigRegBase
指定多重功能裝置之此函式之組態緩存器的屬性位移。

ConfigOptions
指定 8 位 PCMCIA 組態選項快取器。

IoResourceIndex
指定用於設計組態 I/O 基底和限制快取器之總線驅動程式 IOConfig 專案的索引。 此索引是以零起始,也就是零會指定此log-config-section中的初始 IOConfig 專案。

attrs
如果設定為字母 A,指示 PCMCIA 總線驅動程式在組態和狀態快取器中開啟音訊啟用。

每個 MfCardConfig 專案都會提供多函式裝置單一函式的相關信息。 當一組 LogConfig 指示詞會參考 INF 的 DDInstall 中的離散 log-config-section。LogConfigOverride 區段,每個log-config-section 都必須有其專案,包括以相同順序列出的 MfCardConfig 專案。

備註

LogConfig 指示詞可以在任何個別製造商、每一型號 INF DDInstall 區段INF DDInstall 下指定。LogConfigOverride 區段

支持數個替代邏輯設定之非 PnP 裝置的 INF 通常會在 DDInstall 區段下定義一組記錄組態區段。 每個 log-config-section 都會指定一組離散的邏輯組態資源。 它也包含 ConfigPriority 專案,其會根據其對裝置和驅動程式效能的影響、輕鬆初始化等,來排名每個邏輯組態。

針對 PnP 裝置,PnP 管理員會將一組邏輯硬體資源指派給每個 PnP 裝置。 也就是說,PnP 管理員會查詢系統總線驅動程式、接收其使用中每個裝置 I/O 總線組態資源的報告,並指派每個裝置的邏輯硬體資源集,以達到所有這類資源的使用方式的最佳全系統平衡。

因此,PnP 裝置會忽略 DDInstall 區段下的 LogConfig 指示詞。 若要覆寫 PnP 裝置總線所報告的資源,請在 DDInstall 下包含 LogConfig 指示詞。LogConfigOverride 區段。 在此情況下,會使用 log-config-section 中指定的資源,而不是總線所報告的資源。

平臺延伸模組可以新增至包含LogConfig指示詞的 DDInstall 區段,或新增至 DDInstall。LogConfigOverride 區段,指定平臺特定或 OS 特定的邏輯組態。 如需詳細資訊,請參閱 建立 INF 檔案

給定的log-config-section 名稱對INF檔案而言必須是唯一的,但可由相同裝置的其他INF DDInstall區段中的LogConfig指示詞參考。 每個 INF 寫入器建立的區段名稱在 INF 檔案內必須是唯一的,而且必須遵循定義區段名稱的一般規則。 如需這些規則的詳細資訊,請參閱 INF 檔案的一般語法規則

每個 log-config-section 中只能使用一個 ConfigPriority 專案。 視裝置的硬體資源需求而定,可能會有一個以上的其他專案。

一或多個 MfCardConfig= 專案只能出現在 DDInstallLogConfig 指示詞所參考的 log-config-section中。多重功能裝置 INF 的 LogConfigOverride 區段。 如需多重功能裝置 INF 檔案的詳細資訊,請參閱 支援多功能裝置

LogConfig-Referenced 區段專案和值

log-config-section,系統安裝程式會建置二進位邏輯組態記錄,並將其儲存在登錄中。

INF 檔案可以包含任意數目的個別裝置 記錄檔組態區段。 不過,每個這類區段都必須包含安裝一部裝置的完整資訊。 一般而言,INF 應該以相同順序指定其每個 log-config-sections 中的專案。 INF 應該依照最適合驅動程式初始化其裝置的順序指定每個專案集。

如果指定裝置存在一個以上的 log-config-section ,則安裝期間只會使用其中一個INF區段。 這類 INF 檔案會部分控制這類區段會與它在每個這類 log-config-config-section 中提供的 ConfigPriority 值搭配使用。 也就是說,系統安裝程式會嘗試接受 INF 檔案中的任何設定優先順序,但如果找到與已安裝的裝置發生衝突,可能會選取較低排名的邏輯組態。

在安裝期間,會選取指定 之log-config-section 中每個專案的一個和唯一資源,並指派給特定裝置。 如果特定裝置需要相同類型的多個資源,則必須在其 log-config-sections 中使用該類型的一組專案。

例如,為了確保特定裝置的兩個 I/O 埠範圍,必須在該裝置的log-config-section 中指定兩個 IOConfig= 專案。 另一方面,如果裝置不需要 IRQ,其 INF 可以從 log-config-sections 省略 IRQConfig 專案。

範例

此範例顯示 PCMCIA 裝置的一些有效 PcCardConfig 專案。

PcCardConfig=0:E0000:F0000(W)
PcCardConfig=0:E0000(M)
PcCardConfig=0::(W)
PcCardConfig=0(W)

此範例顯示 IOConfig 專案中的類型 1 I/O 範圍規格。 它會指定 I/O 埠區域,大小為 8 個字節,可以從 1F8、2F8 或 3F8 開始。

IOConfig=1F8-1FF, 2F8-2FF, 3F8-3FF

相反地,此範例會顯示 IOConfig 專案中的Type 2 I/O 範圍規格。 它會指定 I/O 埠區域,大小為 8 個字節,從 300、308、310、318、320 或 328 開始。

IOConfig=8@300-32F%FF8

此範例顯示四個埠裝置的 一組 IOConfig 專案,每個裝置都會指定一個 I/O 埠範圍,該範圍會依下一個字節的0x400位元組來位移。

IoConfig=0x200-0x21f
IoConfig=0x600-0x61f
IoConfig=0xA00-0xA1f
IoConfig=0xE00-0xE1f

接下來的兩個範例會顯示典型的 MemConfig 專案。

這個範例會指定 32K 個字節的記憶體區域,從 C0000 或 D0000 開始。

MemConfig=C0000-C7FFF, D0000-D7FFF

本範例會指定從64K界限開始的32k位元組記憶體區域。

MemConfig=8000@C0000-D7FFF%F0000

此範例示範系統 HDC 類別 INF 檔案如何設定一般 ESDI 硬碟控制器的數個 記錄-config-區段 ,並使用 DDInstall。特定 IDE 控制器的 LogConfigOverride 區段。

[MS_HDC] ; per-manufacturer Models section
%FujitsuIdePccard.DeviceDesc% = 
          atapi_fujitsu_Inst, PCMCIA\FUJITSU-IDE-PC_CARD-DDF2
%*PNP0600.DeviceDesc% = atapi_Inst, *PNP0600 ; generic ESDI HDCs

; ... other manufacturers' Models sections omitted

[atapi_Inst]
CopyFiles = @atapi.sys
LogConfig = esdilc1, esdilc2, esdilc3, esdilc4

; ... [atapi_Inst.Services] + service/EventLog-install omitted here

[esdilc1]
ConfigPriority=HARDWIRED
IOConfig=1f0-1f7(3ff::)
IoConfig=3f6-3f6(3ff::)
IRQConfig=14

[esdilc2]
ConfigPriority=HARDWIRED
IOConfig=170-177(3ff::)
IoConfig=376-376(3ff::)
IRQConfig=15

[esdilc3]
ConfigPriority=HARDWIRED
IOConfig=1e8-1ef(3ff::)
IoConfig=3ee-3ee(3ff::)
IRQConfig=11

[esdilc4]
; ...

[atapi_fujitsu_Inst.LogConfigOverride]
LogConfig = fujitsu.LogConfig0

[fujitsu.LogConfig0]
ConfigPriority=NORMAL
IOConfig=10@100-400%fff0
IRQConfig=14,15,5,7,9,11,12,3
PcCardConfig=1:0:0(W)

如需 如何使用 MfCardConfig 專案的一些範例,請參閱 支援未完成設定緩存器地址的計算機卡

另請參閱

DDInstall

DDInstall。FactDef