INF LogConfig 지시문
주의
Windows 11 버전 22H2부터 이 지시문을 사용하는 드라이버 패키지는 더 이상 하드웨어 개발자 센터의 서명을 받을 수 없습니다.
유니버설 드라이버 패키지 및 Windows 드라이버는 이 지시문을 사용할 수 없습니다.
LogConfig 지시문은 하나 이상의 INF 기록기 정의 섹션을 참조하며, 각 섹션은 디바이스에서 사용할 수 있는 인터럽트 요청 줄, 메모리 범위, I/O 포트 및 DMA 채널과 같은 하드웨어 리소스의 논리적 구성을 지정합니다. 각 로그 구성 섹션 은 디바이스에서 사용할 수 있는 버스 상대 하드웨어 리소스의 대체 집합을 지정합니다.
[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
다시 구성하려면 점퍼를 변경해야 합니다.
내장
변경할 수 없습니다.
RESTART
적용하려면 다시 시작해야 합니다.
REBOOT
이는 RESTART와 동일합니다.
POWEROFF
전원 주기를 적용해야 합니다.
DISABLED
하드웨어/디바이스를 사용할 수 없습니다.
DMAConfig=[DMAattrs:]DMANum[**,**DMANum]...]
디바이스가 8비트 DMA 채널만 있는 버스에 연결되어 있고 디바이스가 표준 시스템 DMA를 사용하는 경우 DMAattrs 는 선택 사항입니다. 그렇지 않으면 다음 문자 중 하나일 수 있습니다.
문자 | 의미 |
---|---|
D | 32비트 DMA |
W | 16비트 DMA |
N | 8비트 DMA |
디바이스에서 버스 마스터 DMA를 사용하는 경우 사용된 DMA 채널의 형식을 나타내는 다음(상호 배타적) 문자 중 하나와 함께 M을 사용해야 합니다. A, B 또는 F. A, B 또는 F를 지정하지 않으면 표준 DMA 채널이 가정됩니다.
DMANum은 하나 이상의 버스 상대 DMA 채널을 10진수로 지정하며, 각각 쉼표(,)로 다음 채널과 구분됩니다.
IOConfig=io-range[,io-range]...
다음 형식 중 하나로 디바이스에 대한 하나 이상의 I/O 포트 범위를 지정합니다.
start-end[([decode-mask][:alias-offset][:attr])](유형 1 I/O 범위)
start
I/O 포트 범위의 시작 주소를 64비트 16진수 주소로 지정합니다.
end
I/O 포트 범위의 끝 주소를 64비트 16진수 주소로 지정합니다.
decode-mask
별칭 형식을 정의하며 다음 중 어느 것이든 될 수 있습니다.
마스크 값 | 의미 | IOR_Alias 값 |
---|---|---|
3ff | 10비트 디코딩 | 0x04 |
fff | 12비트 디코딩 | 0x10 |
ffff | 16비트 디코딩 | 0x00 |
0 | 양수 디코딩 | 0xFF |
별칭 오프셋
사용되지 않습니다.
attr
지정된 범위가 시스템 메모리에 있는 경우 문자 M 을 지정합니다. 생략하면 지정된 범위가 I/O 포트 공간에 있습니다.
size@min-max[%align-mask][([decode-mask][:alias-offset][:attr])](Type 2 I/O range)
size
I/O 포트 범위에 필요한 바이트 수를 32비트 16진수 값으로 지정합니다.
min
I/O 포트 범위의 가능한 가장 낮은 시작 주소를 64비트 16진수 주소로 지정합니다.
max
I/O 포트 범위의 가능한 가장 높은 끝 주소를 64비트 16진수 주소로 지정합니다.
align-mask
필요에 따라 정수(일반적으로 32비트 또는 64비트) 주소 경계에서 I/O 포트 범위의 시작을 정렬하기 위해 비트 AND 작업에 사용되는 64비트 마스크를 지정합니다.
decode-mask
별칭 형식을 정의하며 다음 중 어느 것이든 될 수 있습니다.
마스크 값 | 의미 | IOR_Alias 값 |
---|---|---|
3ff | 10비트 디코딩 | 0x04 |
fff | 12비트 디코딩 | 0x10 |
ffff | 16비트 디코딩 | 0x00 |
0 | 양수 디코딩 | 0xFF |
별칭 오프셋
사용되지 않습니다.
attr
지정된 범위가 시스템 메모리에 있는 경우 문자 M 을 지정합니다. 생략하면 지정된 범위가 I/O 포트 공간에 있습니다.
MemConfig=mem-range[,mem-range]...
다음 형식 중 하나로 디바이스에 대한 하나 이상의 메모리 범위를 지정합니다.
start-end[(attr)] | size@min-max[%align-mask][(attr)]
start
디바이스 메모리 범위의 시작(버스 상대) 물리적 주소를 64비트 16진수 값으로 지정합니다.
end
메모리 범위의 끝 실제 주소를 64비트 16진수 값으로 지정합니다.
attr
메모리 범위의 특성을 다음 문자 중 하나 이상으로 지정합니다.
문자 | 의미 |
---|---|
R | 읽기 전용 |
W | 쓰기 전용 |
RW | 읽기/쓰기 |
C | 결합된 쓰기 허용 |
H | 캐시 가능 |
F | 프리페치 가능 |
D | 카드 디코딩 주소 지정은 24비트 대신 32비트입니다. |
R과 W가 모두 지정되거나 둘 다 지정되지 않은 경우 읽기/쓰기가 가정됩니다.
size
메모리 범위에 필요한 바이트 수를 32비트 16진수 값으로 지정합니다.
min
디바이스 메모리 범위의 가능한 가장 낮은 시작 주소를 64비트 16진수 값으로 지정합니다.
max
메모리 범위의 가능한 가장 높은 끝 주소를 64비트 16진수 값으로 지정합니다.
align-mask
필요에 따라 비트 AND 연산에 사용되는 64비트 마스크를 지정하여 디바이스 메모리 범위의 시작을 정수(일반적으로 64비트) 주소 경계에 맞춥니다.
맞춤 마스크를 생략하면 기본 메모리 맞춤이 4K 경계(FFFFF000)에 있습니다.
IRQConfig=[IRQattrs:]IRQNum[,IRQNum]...
디바이스에서 버스 상대, 에지 트리거 IRQ를 사용하는 경우 IRQattrs 는 생략됩니다. 그렇지 않으면 디바이스가 이 항목에 나열된 IRQ 줄을 공유할 수 있는 경우 수준 트리거 IRQ 및 LS를 나타내도록 L을 지정합니다.
IRQNum은 디바이스가 10진수로 사용할 수 있는 하나 이상의 버스 상대 IRQ를 지정하며, 각각 쉼표(,)로 구분됩니다.
PcCardConfig ConfigIndex[:[MemoryCardBase1][:MemoryCardBase2]][(attrs)]=
CardBus 레지스터를 구성하고 디바이스의 특성 공간에 매핑하는 최대 2개의 영구 메모리 창을 만듭니다. 드라이버는 메모리 창을 사용하여 ISR에서 특성 공간에 액세스할 수 있습니다. 모든 숫자 값을 16진수 형식으로 지정합니다.
PcCardConfig 항목의 요소는 다음과 같습니다.
ConfigIndex
PCMCIA 버스의 디바이스에 대한 8비트 PCMCIA 구성 인덱스를 지정합니다.
MemoryCardBase1
필요에 따라 첫 번째 메모리 창에 대한 32비트 기본 주소를 지정합니다.
MemoryCardBase2
필요에 따라 두 번째 메모리 창에 대한 32비트 기본 주소를 지정합니다.
attrs
필요에 따라 디바이스에 대한 하나 이상의 특성을 공백으로 구분하여 지정합니다. 잘못된 특성 지정자가 전체 PcCardConfig 항목을 무효화합니다. 특정 특성에 대해 둘 이상의 지정자가 제공되면 특성이 디바이스의 개별 I/O 또는 메모리 창에 적용됩니다. 지정자가 하나만 제공되면 해당 특성이 모든 창에 적용됩니다(다음 예제 참조).
특히 여러 지정자가 제공되면 왼쪽에서 오른쪽으로 읽은 첫 번째 지정자가 첫 번째 창에 적용되고 다음 지정자가 두 번째 창에 적용됩니다. 최대 2개의 I/O 창과 두 개의 메모리 창을 단일 PcCardConfig 항목으로 제어할 수 있습니다. 디바이스에 두 개 이상의 메모리 창이 있는 경우 두 번째 PcCardConfig 항목을 포함해야 합니다.
특성은 다음과 같습니다.
특성 | 설명 |
---|---|
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비트, 0 대기 상태입니다. n이 1이면 8비트 I/O 액세스가 0개의 추가 대기 상태로 발생합니다. 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 ConfigRegBase:ConfigOptions[:IoResourceIndex][(attrs)]...=
다음과 같이 다기능 디바이스의 한 함수에 대한 구성 레지스터 집합의 특성 메모리 위치를 지정합니다.
ConfigRegBase
다기능 디바이스의 이 함수에 대한 구성 레지스터의 특성 오프셋을 지정합니다.
ConfigOptions
8비트 PCMCIA 구성 옵션 레지스터를 지정합니다.
IoResourceIndex
구성 I/O 기본을 프로그래밍하고 레지스터를 제한하는 데 사용할 버스 드라이버의 IOConfig 항목에 대한 인덱스를 지정합니다. 이 인덱스는 0부터 시작합니다. 즉, 0은 이 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 버스 구성 리소스에 대한 보고서를 수신하고, 디바이스별 논리 하드웨어 리소스 집합을 할당하여 이러한 모든 리소스의 사용에서 최상의 시스템 차원의 균형을 달성합니다.
따라서 DDInstall 섹션 아래의 LogConfig 지시문은 PnP 디바이스에 대해 무시됩니다. PnP 디바이스에 대해 버스에서 보고한 리소스를 재정의하려면 DDInstall 아래에 LogConfig 지시문을 포함합니다. LogConfigOverride 섹션입니다. 이 경우 log-config-section에 지정된 리소스는 버스에서 보고하는 리소스 대신 사용됩니다.
플랫폼 확장은 LogConfig 지시문을 포함하는 DDInstall 섹션 또는 DDInstall에 추가할 수 있습니다. 플랫폼별 또는 OS별 논리 구성을 지정하기 위한 LogConfigOverride 섹션입니다. 자세한 내용은 INF 파일 만들기를 참조 하세요.
지정된 log-config-section 이름은 INF 파일에 고유해야 하지만 동일한 디바이스에 대한 다른 INF DDInstall 섹션의 LogConfig 지시문에서 참조할 수 있습니다. 각 INF 작성기에서 만든 섹션 이름은 INF 파일 내에서 고유해야 하며 섹션 이름을 정의하기 위한 일반 규칙을 따라야 합니다. 이러한 규칙에 대한 자세한 내용은 INF 파일에 대한 일반 구문 규칙을 참조 하세요.
각 log-config-section에서 하나의 ConfigPriority 항목만 사용할 수 있습니다. 디바이스의 하드웨어 리소스 요구 사항에 따라 두 개 이상의 다른 항목이 있을 수 있습니다.
하나 이상의 MfCardConfig= 항목은 DDInstall의 LogConfig 지시문에서 참조하는 log-config-section에만 나타날 수 있습니다. 다기능 디바이스에 대한 INF의 LogConfigOverride 섹션입니다. 다기능 디바이스에 대한 INF 파일에 대한 자세한 내용은 지원 다기능 디바이스를 참조 하세요.
LogConfig 참조 섹션 항목 및 값
log-config-section에서 시스템 설치 관리자는 이진 논리 구성 레코드를 빌드하고 레지스트리에 저장합니다.
INF 파일에는 여러 디바이스 별 로그 구성 섹션이 포함될 수 있습니다. 그러나 이러한 각 섹션에는 하나의 디바이스를 설치하기 위한 전체 정보가 포함되어야 합니다. 일반적으로 INF는 각 로그 구성 섹션의 항목을 동일한 순서로 지정해야 합니다. INF는 드라이버가 디바이스를 초기화하는 방법에 가장 적합한 순서로 각 항목 집합을 지정해야 합니다.
지정된 디바이스에 대해 둘 이상의 log-config-section 이 있는 경우 설치 중에 이러한 INF 섹션 중 하나만 사용됩니다. 이러한 INF 파일은 이러한 각 log-config-section에서 제공하는 ConfigPriority 값과 함께 사용되는 섹션을 부분적으로 제어합니다. 즉, 시스템 설치 관리자는 INF 파일의 구성 우선 순위를 적용하려고 하지만 이미 설치된 디바이스와의 충돌이 발견되면 순위가 낮은 논리 구성을 선택할 수 있습니다.
설치하는 동안 지정된 log-config-section 의 각 항목에서 하나의 리소스만 선택되어 특정 디바이스에 할당됩니다. 특정 디바이스에 동일한 형식의 리소스가 둘 이상 필요한 경우 해당 형식의 항목 집합을 로그 구성 섹션에서 사용해야 합니다.
예를 들어 특정 디바이스에 대해 두 개의 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 범위 사양을 보여 있습니다. 1F8, 2F8 또는 3F8에서 시작할 수 있는 크기가 8바이트인 I/O 포트 지역을 지정합니다.
IOConfig=1F8-1FF, 2F8-2FF, 3F8-3FF
이와 대조적으로 이 예제에서는 IOConfig 항목의 Type 2 I/O 범위 사양을 보여 있습니다. 300, 308, 310, 318, 320 또는 328에서 시작할 수 있는 크기가 8바이트인 I/O 포트 지역을 지정합니다.
IOConfig=8@300-32F%FF8
이 예제에서는 각각 다음에서 0x400 바이트로 오프셋되는 I/O 포트 범위를 지정하는 4개 포트 디바이스에 대한 IOConfig 항목 집합을 보여줍니다.
IoConfig=0x200-0x21f
IoConfig=0x600-0x61f
IoConfig=0xA00-0xA1f
IoConfig=0xE00-0xE1f
다음 두 예제에서는 일반적인 MemConfig 항목을 보여 줍니다.
이 예제에서는 C0000 또는 D0000에서 시작할 수 있는 32K 바이트의 메모리 영역을 지정합니다.
MemConfig=C0000-C7FFF, D0000-D7FFF
이 예제에서는 64K 경계에서 시작하는 32k바이트 메모리 영역을 지정합니다.
MemConfig=8000@C0000-D7FFF%F0000
이 예제에서는 시스템 HDC 클래스 INF 파일이 일반 ESDI 하드 디스크 컨트롤러에 대해 여러 log-config-sections을 설정하고 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 항목을 사용하는 방법에 대한 몇 가지 예는 불완전한 구성 레지스터 주소가 있는 지원 PC 카드를 참조하세요.