다음을 통해 공유


불완전한 구성 레지스터 주소가 있는 PC 카드

다기능 16비트 PC 카드 디바이스에 각 함수에 대한 구성 레지스터가 있지만 모든 레지스터 집합에 대한 특성 메모리에 포인터가 포함되지 않은 경우(LONGLINK_MFC 튜플을 지원하지 않음) 이러한 디바이스의 공급업체는 시스템 제공 다기능 버스 드라이버(mf.sys)를 사용할 수 있지만 사용자 지정 INF 파일과 개별 함수에 대한 지원을 제공해야 합니다.

NT 기반 플랫폼의 이러한 디바이스 공급업체는 다기능 디바이스에 시스템 제공 함수 드라이버를 사용할 수 있습니다.

디바이스에 대한 사용자 지정 INF는 mf.sys 디바이스의 함수 드라이버로 지정해야 합니다. 그러면 시스템에서 제공하는 mf.sys 드라이버가 디바이스의 기능을 열거합니다.

시스템 제공 mf.sys 드라이버 사용에 대한 자세한 내용은 System-Supplied Multifunction Bus 드라이버 사용을 참조하세요.

이러한 디바이스의 공급업체는 다음을 제공해야 합니다.

  • 다기능 디바이스에 대한 사용자 지정 INF 파일입니다. (공급업체 제공)

    공급업체는 mf.sys 다기능 버스 드라이버로 지정하고, 클래스 "MultiFunction"(devguid.h에 정의된 대로 연결된 GUID 포함)을 지정하고, 누락된 구성 레지스터 주소를 제공하는 다기능 INF 파일을 제공해야 합니다. 이 섹션의 뒷부분에 있는 추가 정보를 참조하세요.

  • 디바이스의 각 함수에 대한 PnP 함수 드라이버입니다. (공급업체 제공)

    다기능 버스 드라이버는 다기능 의미 체계를 처리하므로 함수 드라이버는 함수가 개별 디바이스로 패키지될 때 사용되는 드라이버와 동일할 수 있습니다.

  • 디바이스의 각 함수에 대한 INF 파일입니다. (공급업체 제공)

    INF 파일은 함수가 개별 디바이스로 패키지될 때 사용되는 것과 동일한 파일일 수 있습니다. INF 파일에는 특별한 다기능 의미 체계가 필요하지 않습니다.

이러한 다기능 디바이스에 대한 사용자 지정 INF에는 하나 이상의 INF DDInstall.LogConfigOverride 섹션이 포함되어야 합니다. 재정의 섹션에는 각 구성 레지스터 집합의 위치를 식별하는 각 함수에 대한 MfCardConfig 항목이 포함되어야 합니다.

INF에 재정의 구성이 있는 경우 PnP 관리자는 디바이스의 디바이스 리소스 요구 사항을 사용하지 않으므로 INF는 디바이스에서 지정한 모든 리소스 요구 사항을 다시 지정해야 합니다.

INF LogConfig 지시문에 설명된 구문을 사용하여 MfCardConfig 항목을 지정합니다.

예를 들어 모뎀 및 네트워크 어댑터가 포함된 다기능 PC 카드 디바이스에 대한 사용자 지정 INF에서 발췌한 다음을 고려해 보세요.

;...
 
[DDInstall.LogConfigOverride]
LogConfig = DDInstall.Override0
 
[DDInstall.Override0]
IOConfig     =    3F8-3FF                  ; Com1
IOConfig     =    10@100-FFFF%FFF0         ; NIC I/O
IRQConfig    =    3,4,5,7,9,10,11          ; IRQ
MemConfig    =    2000@0-FFFFFFFF%FFFFE000 ; Memory Descriptor 0
MemConfig    =    1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor 1
MfCardConfig =    1000:47:0(A)
MfCardConfig =    1080:47:1
;...

이 예제에서는 디바이스의 각 함수에 대해 하나씩 두 개의 MfCardConfig 항목을 보여줍니다. 첫 번째 MfCardConfig 항목에는 다음 정보가 포함됩니다.

1000 (ConfigRegBase)
오프셋 0x1000 카드 특성 메모리에 구성 레지스터 집합이 있는지 지정합니다. 이 예제에서 이러한 레지스터의 정보는 카드 모뎀 함수를 설명합니다.

47 (ConfigOptions)
configRegBase 오프셋(0x1000)에서 구성 옵션 레지스터로 프로그래밍할 버스 드라이버의 16진수 값을 지정합니다.

0 (IoConfigIndex)
이 함수의 I/O 리소스가 이 섹션의 첫 번째 IOConfig 항목에 나열되도록 지정합니다. 인덱스가 0이면 첫 번째 항목이 표시됩니다. 이 예제에서는 "IOConfig = 3F8-3FF"입니다.

A (attrs)
버스 드라이버가 이 함수에 대해 오디오 사용을 사용하도록 지시합니다. 이는 모뎀에 일반적입니다.

두 번째 MfCardConfig 항목에는 디바이스의 두 번째 함수(이 예제에서는 네트워크 어댑터)에 대한 정보가 포함됩니다. 이 항목은 오프셋 0x1080 두 번째 구성 레지스터 집합이 있음을 지정합니다. 버스 드라이버는 이 함수에 대한 구성 옵션 레지스터에 0x47 ConfigOptions 값을 씁니다. 하나의 IoConfigIndex 값은 버스 드라이버가 이 섹션의 두 번째 IOConfig 항목(IOConfig = 10@100-FFFF%FFF0)을 사용하여 I/O 베이스를 프로그래밍하고 이 함수에 대한 레지스터를 제한하도록 지시합니다.

둘 이상의 DDInstall을 포함합니다. INF에서 N 섹션을 재정의하여 둘 이상의 비 순차적 I/O 포트 범위를 지정합니다.

디바이스가 0에 기반하지 않는 메모리 창을 사용하는 경우 DDInstall입니다. 재정의 N 섹션에는 PcCardConfig 항목도 포함되어야 합니다. 재정의 섹션에 MfCardConfig 항목과 PcCardConfig 항목이 모두 있는 경우 PCMCIA 버스 드라이버는 PcCardConfig 항목의 ConfigIndex 값을 무시하고 MemoryCardBaseN 정보만 사용합니다. PcCardConfig 항목에 대한 자세한 내용은 불완전한 구성 레지스터가 있는 지원 PC 카드를 참조하세요.