Freigeben über


Unterstützen von PC-Karten mit unvollständigen Konfigurationsregistern

Wenn ein 16-Bit-PC-Kartengerät keine Konfigurationsregister für jede Funktion hat, kann der Anbieter eines solchen Geräts den vom System bereitgestellten Multifunktionsbustreiber (mf.sys) verwenden, muss jedoch eine benutzerdefinierte INF-Datei und Unterstützung für die einzelnen Funktionen bereitstellen.

Der Anbieter eines solchen Geräts auf einer NT-basierten Plattform kann die folgende vom System bereitgestellte Komponente verwenden:

  • Ein Funktionstreiber für das Multifunktionsgerät. (vom System bereitgestellt)

    Ein benutzerdefinierter INF für das Gerät muss mf.sys als Funktionstreiber für das Gerät angeben. Der vom System bereitgestellte mf.sys Treiber führt dann die Funktionen des Geräts auf.

    Weitere Informationen zur Verwendung des vom System bereitgestellten mf.sys Treibers finden Sie unter Verwendung des vom System bereitgestellten Multifunktionsbustreibers .

Der Anbieter eines solchen Geräts muss Folgendes bereitstellen:

  • Eine benutzerdefinierte INF-Datei für das Multifunktionsgerät. (vom Anbieter bereitgestellt)

    Der Anbieter muss eine MULTIFUNKTIONS-INF-Datei bereitstellen, die mf.sys als Multifunktionsbustreiber angibt, die Klasse "MultiFunction" (mit der zugehörigen GUID gemäß definition in devguid.h) angibt und die fehlenden Konfigurationsregisterinformationen bereitstellt. Weitere Informationen finden Sie weiter unten in diesem Abschnitt.

  • Ein PnP-Funktionstreiber für jede Funktion des Geräts. (vom Anbieter bereitgestellt)

    Da der Multifunktionsbustreiber die Multifunktionssemantik verarbeitet, können die Funktionstreiber dieselben Treiber sein, die verwendet werden, wenn die Funktionen als einzelne Geräte verpackt werden.

  • Eine INF-Datei für jede Funktion des Geräts. (vom Anbieter bereitgestellt)

    Die INF-Dateien können dieselben Dateien sein, die verwendet werden, wenn die Funktionen als einzelne Geräte verpackt werden. Die INF-Dateien benötigen keine spezielle Multifunktionssemantik.

Der vom Anbieter bereitgestellte benutzerdefinierte INF für ein solches Gerät muss Folgendes angeben:

Der INF-Manager muss alle vom Gerät angegebenen Ressourcenanforderungen erneut ausführen, da bei Außerkraftsetzungskonfigurationen im INF keine Geräteressourcenanforderungen vom Gerät verwendet werden.

Für ein solches Gerät kann das Konfigurationsoptionsregister mithilfe eines PcCardConfig-Eintrags programmiert werden, ähnlich wie bei der Programmierung eines Einzelfunktionsgeräts. Der PcCardConfig-Eintrag enthält Informationen, die für das gesamte Gerät gelten. Der PcCardConfig-Eintrag ist in der INF LogConfig-Direktive dokumentiert.

Wenn Sie einen PcCardConfig-Eintrag für ein Multifunktionsgerät angeben, ist das Format des ConfigIndex identisch mit dem formatieren, das für ein einzelfunktionsfähiges Gerät definiert ist. Das Konfigurationsregister für einzelfunktionsbasierte PC-Karten enthält einen Index zu einer Gruppe von Ressourcen, die in den Attributen dieses Geräts definiert sind. Diese Direktive kann auch mit bestimmten Multifunktionsgeräten verwendet werden, die das indexbasierte Format des Konfigurationsoptionsregisters verwenden.

Das folgende Beispiel zeigt eine INF-Datei zum Installieren eines Multifunktionsgeräts, das mf.sys als Bustreiber verwendet und unvollständige Konfigurationsregister enthält.

; MFSupra.inf
; This file installs the Supra Dual 56K modem
; Copyright 1999 Microsoft Corporation

[version]
Signature   = "$Windows NT$"
Provider    = %MSFT%
Class       = MultiFunction              ; system-defined class
ClassGUID   = {4d36e971-e325-11ce-bfc1-08002be10318}
DriverVer   = 05/08/2023,1.0.0.0
CatalogFile = ExampleCat.cat
PnpLockdown = 1

[ControlFlags]
ExcludeFromSelect=*SUP2440  ; don't include PnP devices in lists of
                            ; devices to be manually installed

[Manufacturer]
%M_Supra% = Supra,NTamd64

[Supra.NTamd64]
%Supra1% = Sup2231GoCard.mf, *SUP2440

[Sup2231GoCard.mf.NT]
Include = mf.inf           ; specify that this device needs mf.sys
Needs = MFINSTALL.mf

[Sup2231GoCard.mf.NT.HW]
AddReg=Sup2231.mf.RegHW

[Sup2231.mf.RegHW]
HKR, Child0000, HardwareID,  ,  MF\Shotgun_DEV0  ;modem1
HKR, Child0000, ResourceMap,1,00,02
HKR, Child0001, HardwareID,  ,  MF\Shotgun_DEV1  ;modem2
HKR, Child0001, ResourceMap,1,01,02

[Sup2231GoCard.mf.NT.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[Sup2231GoCard.mf.NT.LogConfigOverride]
LogConfig = Sup223x.mf.Override0, Sup223x.mf.Override1, \
 Sup223x.mf.Override2, Sup223x.mf.Override3

[Sup223x.mf.Override0]
ConfigPriority = NORMAL
IOConfig     = 2F8-2FF                  ; Com2
IOConfig     = 20@100-FFFF%FFE0         ; NIC I/O
IRQConfig    = 3,4,5,7,9,10,11,12,15    ; IRQ
MemConfig    = 1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor
PCCardConfig = 59(W)                    ; ConfigIndex

[Sup223x.mf.Override1]
ConfigPriority = NORMAL
IOConfig     = 3E8-3EF                  ; Com3
IOConfig     = 20@100-FFFF%FFE0         ; NIC I/O
IRQConfig    = 3,4,5,7,9,10,11,12,15    ; IRQ
MemConfig    = 1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor
PCCardConfig = 69(W)                    ; ConfigIndex

[Sup223x.mf.Override2]
ConfigPriority = NORMAL
IOConfig     = 2E8-2EF                  ; Com4
IOConfig     = 20@100-FFFF%FFE0         ; NIC I/O
IRQConfig    = 3,4,5,7,9,10,11,12,15    ; IRQ
MemConfig    = 1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor
PCCardConfig = 79(W)                    ; ConfigIndex

[Sup223x.mf.Override3]
ConfigPriority = NORMAL
IOConfig     = 3F8-3FF                  ; Com1
IOConfig     = 20@100-FFFF%FFE0         ; NIC I/O
IRQConfig    = 3,4,5,7,9,10,11,12,15    ; IRQ
MemConfig    = 1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor
PCCardConfig = 49(W)                    ; ConfigIndex

[Strings]
MSFT = "Microsoft"
M_Supra = "Supra"
Supra1 = "Supra Dual 56K modem"

Ein INF wie die oben gezeigte kopiert die ID- und Ressourceninformationen für die untergeordneten Funktionen in die Registrierung. Der mf.sys Treiber ruft die Informationen aus der Registrierung ab, wenn die untergeordneten Funktionen des Geräts aufgelistet werden.