INF 파일 섹션 표시

이 섹션에서는 그래픽 어댑터 설치에 특별히 적용되는 INF(설치 정보 파일) 섹션을 작성하는 방법을 설명합니다. INF 파일에 대한 자세한 내용은 INF 파일 섹션 및 지시문을 참조하세요.

DDInstall.SoftwareSettings 섹션

DDInstall입니다. SoftwareSettings 섹션에는 AddReg 지시문 및/또는 DelReg 지시문이 포함되어 있습니다. 각 지시문은 설치 관리자가 추가하거나 삭제할 레지스트리 항목이 포함된 별도의 기록기 정의 INF 섹션을 가리킵니다.

예를 들어 다음 코드는 ACME-1234_SoftwareDeviceSettings 라는 기록기 정의 추가 레지스트리 섹션을 가리키는 AddReg 지시문을 보여줍니다. DelReg 지시문은 ACME-1234_DeleteSWSettings 라는 delete-registry 섹션을 가리킵니다.

[ACME-1234.SoftwareSettings]
AddReg=ACME-1234_SoftwareDeviceSettings
DelReg=ACME-1234_DeleteSWSettings

추가 레지스트리 섹션에서는 다음 코드와 같이 레지스트리에 4개의 항목을 추가하고 해당 값을 설정합니다.

[ACME-1234_SoftwareDeviceSettings]
HKR,, InstalledDisplayDrivers, %REG_MULTI_SZ%, Acme1
HKR,, OverRideMonitorPower, %REG_DWORD%, 0
HKR,, MultiFunctionSupported, %REG_DWORD%, 1
HKR,, VideoDebugLevel, %REG_DWORD%, 2

위의 코드는 먼저 InstalledDisplayDrivers 항목의 값을 표시 드라이버의 이름으로 설정합니다. 그런 다음, 코드는 OverRideMonitorPower 항목의 값을 0(즉, FALSE)으로 설정합니다. OEM 시스템 공급업체에서만 사용해야 하는 이 항목은 모니터 디바이스(예: LCD, CRT 또는 TV)의 전원 동작을 제어합니다. 1로 설정하면 OverRideMonitorPower 는 모니터 디바이스의 가능한 전원 상태를 D0 및 D3으로 제한합니다.

셋째, 코드는 MultiFunctionSupported 항목의 값을 1(즉, TRUE)로 설정합니다. 이 값은 여러 PCI 함수를 지원하는 어댑터에 필요한 값입니다. 마지막으로 코드는 빌드에서 디버그 메시지에 사용하는 전역 디버그 수준을 제어하는 VideoDebugLevel 항목의 값을 설정합니다. 이 값의 범위는 0(디버그 메시지 없음)에서 3(가장 자세한 메시지)입니다. 전역 디버그 수준에 대한 자세한 내용은 VideoDebugPrint를 참조하세요.

대부분의 비디오 미니포트 드라이버는 VGA와 호환되지 않으며 레지스트리에 VgaCompatible 항목이 필요하지 않습니다. 비디오 미니포트 드라이버가 VGA와 호환되는 경우 레지스트리에 VgaCompatible 항목을 추가하고 여기에 표시된 대로 레지스트리 추가 섹션에서 해당 값을 1(TRUE)로 설정합니다.

[ACME-1234_SoftwareDeviceSettings]
HKR,, VgaCompatible, %REG_DWORD%, 1

VGA 호환 비디오 미니포트 드라이버에 대한 자세한 내용은 VGA 호환 비디오 미니포트 드라이버(Windows 2000 모델)를 참조하세요.

다음 delete-registry 섹션에서는 GraphicsClocking, MemClockingCapabilityOverride의 세 가지 레지스트리 항목을 삭제합니다.

[ACME-1234_DeleteSWSettings]
HKR,, GraphicsClocking
HKR,, MemClocking
HKR,, CapabilityOverride

CapabilityOverride 항목은 시스템이 디스플레이 드라이버에 대해 해제하는 기능을 지정합니다. 예를 들어 디스플레이 드라이버가 DrvEscape 함수를 구현하더라도 CapabilityOverride 항목에서 0x10 플래그를 설정한 경우 해당 기능을 사용할 수 없습니다.

CapabilityOverride 레지스트리 항목의 값은 다음 표에 나열된 하나 이상의 플래그에 대한 비트 OR입니다.

플래그 의미

0x1

모든 하드웨어 가속을 사용하지 않도록 설정합니다. 하드웨어 가속 슬라이드 바(제어판 표시 항목)를 최소 설정으로 이동하는 것과 같습니다.

0x2

Microsoft DirectDraw 및 Microsoft Direct3D 하드웨어 가속에 대한 모든 지원을 사용하지 않도록 설정합니다.

0x4

Direct3D 하드웨어 가속에 대한 모든 지원을 사용하지 않도록 설정합니다. Direct3D 기능 및 콜백 정보를 요청하는 DdGetDriverInfo에 대한 호출이 드라이버에 도달하지 못하도록 방지합니다.

0x8

OpenGL ICD(설치 가능 클라이언트 드라이버) 및 MCD(미니클라이언트 드라이버)에 대한 모든 지원을 사용하지 않도록 설정합니다. DrvSetPixelFormat, DrvDescribePixelFormatDrvSwapBuffers에 대한 호출이 드라이버에 도달하지 못하도록 합니다. 또한 OPENGL_GETINFO, OPENGL_CMD 및 MCDFUNCS가 드라이버에 도달하지 못하도록 방지합니다.

0x10

드라이버의 모든 이스케이프에 대한 지원을 사용하지 않도록 설정합니다. DrvEscapeDrvDrawEscape에 대한 호출이 드라이버에 도달하지 못하도록 합니다.

Windows와 함께 제공되는 디스플레이 드라이버의 경우 CapabilityOverride 는 일반적으로 openGL을 사용하지 않도록 설정하는 0x8 설정됩니다. OpenGL을 사용하지 않도록 설정하려면 0x10 플래그를 설정할 필요가 없으며 모든 이스케이프를 사용하지 않도록 설정하지 않는 한 0x10 플래그를 설정해서는 안 됩니다.

Microsoft Windows XP 및 이전 운영 체제는 디스플레이 드라이버가 업데이트될 때 CapabilityOverride 레지스트리 항목을 삭제하지 않습니다(예: Windows와 함께 제공되는 드라이버에서 IHV(독립 하드웨어 공급업체)에서 제공하는 최신 드라이버로. 영구 CapabilityOverride 항목은 이전 드라이버에서 사용하지 않도록 설정한 업데이트된 드라이버에서 동일한 기능을 사용하지 않도록 설정합니다. 따라서 Windows XP 이하의 경우 기존 CapabilityOverride 항목을 명시적으로 삭제하는 DelReg 지시문을 INF 파일에 포함합니다. Windows XP SP1 이상 운영 체제는 드라이버가 업데이트되면 CapabilityOverride 항목을 자동으로 삭제하므로 해당 시스템의 경우 CapabilityOverride 항목을 삭제할 필요가 없습니다.

AGP 전송 속도 및 사이드밴드 주소 지정 사용 안 됨

필요한 경우 디스플레이 어댑터에 대한 INF 파일을 수정하여 특정 AGP 전송 속도 또는 사이드밴드 주소를 사용하지 않도록 설정할 수 있습니다. 미니포트 드라이버는 AgpSetRate를 호출할 때 AGP 전송 속도를 변경할 수 있지만 이러한 호출은 INF 파일에서 사용하지 않도록 설정된 전송 속도를 변경할 수 없습니다.

WDK(Windows 드라이버 키트)와 함께 제공되는 regstr.h 헤더 파일은 다음 플래그 집합을 정의합니다.

플래그 의미

AGP_FLAG_NO_1X_RATE

0x00000001L

단일 속도(66MHz) 전송 속도를 사용하지 않도록 설정합니다.

AGP_FLAG_NO_2X_RATE

0x00000002L

단일 속도 전송 속도의 2배를 사용하지 않도록 설정합니다.

AGP_FLAG_NO_4X_RATE

0x00000004L

단일 속도 전송 속도의 4배를 사용하지 않도록 설정합니다.

AGP_FLAG_NO_8X_RATE

0x00000008L

단일 속도 전송 속도의 8배를 사용하지 않도록 설정합니다.

AGP_FLAG_NO_SBA_ENABLE

0x00000100L

SBA(사이드밴드 주소 지정)를 사용하지 않도록 설정합니다.

전역 및 플랫폼별 설정의 두 가지 유형이 있습니다. 레지스트리에는 다음 위치에 전역 항목이 포함됩니다.

HKLM,"SYSTEM\CurrentControlSet\Control\AGP"

필터 드라이버 서비스 키의 "매개 변수" 아래에서 플랫폼별 항목을 찾을 수 있습니다. 예를 들어 이러한 항목은 레지스트리의 다음 위치에 있는 가상의 AcmeAGP 어댑터에 대해 존재합니다.

HKLM,"SYSTEM\CurrentControlSet\Services\AcmeAGP\Parameters"

DeviceID가 0x012A(Nuclear3D)인 디바이스에 대한 사이드밴드 주소 지정을 사용하지 않도록 설정하고 VIA Technologies 플랫폼에서 0x1AD0 VendorID를 사용하려면 inF 파일에 Nuclear3D_Install.HW 섹션을 추가합니다. (이 유형의 INF 설치 섹션에 대한 자세한 내용은 INF DDInstall.HW 섹션을 참조하세요.) 이 섹션에서는 다음과 유사한 AddReg 지시문을 포함합니다.

[Nuclear3D_Install.HW] 
AddReg = Nuclear3D_Reg 

다음으로 AddReg 지시문이 가리키는 다음 섹션을 만듭니다.

[Nuclear3D_Reg] 
HKLM,"SYSTEM\CurrentControlSet\Services\viaagp\Parameters","1AD0012A",0x00030003,00,01,00,00,00,00,00,00 

앞의 항목은 HKLM 다음 문자열로 식별된 하위 키를 HKEY_LOCAL_MACHINE 루트 아래의 레지스트리에 추가되어야 했음을 나타냅니다. "1AD0012A" 문자열은 처음 네 문자가 DeviceID를 구성하고 마지막 네 문자가 이 부분에 대한 VendorID를 구성하는 항목 이름입니다. 항목 이름 뒤의 16진수는 항목의 데이터 형식을 나타내는 플래그 집합으로 구성됩니다. 마지막 부분은 사이드밴드 주소 지정을 사용하지 않도록 설정하는 항목 값입니다.

중요 값 항목의 바이트는 이전 표의 AGP_FLAG_NO_SBA_ENABLE 플래그 정의와 반대 순서입니다.

이 동일한 디바이스의 모든 칩셋에서 AGP 4X가 손상되는 것을 확인한다고 가정해 보겠습니다. 이 사실을 나타내려면 Nuclear3D_Reg 섹션에 두 번째 항목을 추가합니다.

[Nuclear3D_Reg] 
HKLM,"SYSTEM\CurrentControlSet\Services\viaagp\Parameters","1AD0012A",0x00030003,00,01,00,00,00,00,00,00 
HKLM,"SYSTEM\CurrentControlSet\Control\AGP","1AD0012A",0x00030003,04,00,00,00,00,00,00,00 

이전 코드의 두 번째 항목은 HKLM 다음 문자열로 식별된 하위 키를 HKEY_LOCAL_MACHINE 루트 아래의 레지스트리에 추가해야 했음을 나타냅니다. 이전 항목에서와 같이 이 하위 키와 연결된 값 이름은 디바이스의 DeviceID 및 VendorID로 구성된 문자열입니다. 플래그 값도 동일합니다. 값 항목은 AGP_FLAG_NO_4X_RATE AGP 4X 전송 속도를 사용하지 않도록 설정합니다. 이전과 마찬가지로 이 값 항목의 바이트는 앞의 표에 있는 플래그 값과 반대 순서입니다.