Supporto delle schede PC con registri di configurazione incompleti
Se un dispositivo scheda PC a 16 bit multifunzione non dispone di registri di configurazione per ogni funzione, il fornitore di tale dispositivo può usare il driver del bus multifunzione fornito dal sistema (mf.sys) ma deve fornire un file INF personalizzato e il supporto per le singole funzioni.
Il fornitore di un dispositivo di questo tipo su una piattaforma basata su NT può usare il componente fornito dal sistema seguente:
Driver di funzione per il dispositivo multifunzione. (fornito dal sistema)
Un INF personalizzato per il dispositivo deve specificare mf.sys come driver di funzione per il dispositivo. Il driver mf.sys fornito dal sistema enumererà quindi le funzioni del dispositivo.
Per altre informazioni sull'uso del driver mf.sys fornito dal sistema, vedere Uso del driver del bus multifunzione fornito dal sistema.
Il fornitore di tale dispositivo deve fornire quanto segue:
Un file INF personalizzato per il dispositivo multifunzione. (fornitore fornito)
Il fornitore deve fornire un file INF multifunzione che specifica mf.sys come driver bus multifunzione, specifica la classe "MultiFunction" (con il GUID associato come definito in devguid.h) e fornisce le informazioni sul registro di configurazione mancanti. Vedere altre informazioni più avanti in questa sezione.
Driver di funzione PnP per ogni funzione del dispositivo. (fornitore fornito)
Poiché il driver del bus multifunzione gestisce la semantica multifunzione, i driver di funzione possono essere gli stessi driver usati quando le funzioni vengono incluse come singoli dispositivi.
Un file INF per ogni funzione del dispositivo. (fornitore fornito)
I file INF possono essere gli stessi file usati quando le funzioni vengono incluse in un pacchetto come singoli dispositivi. I file INF non necessitano di una semantica speciale a più funzioni.
L'INF personalizzato fornito dal fornitore per un dispositivo di questo tipo deve specificare:
mf.sys come servizio per il dispositivo.
Per altre informazioni, vedere Uso del driver del bus multifunzione fornito dal sistema.
Requisiti delle risorse del dispositivo multifunzione.
Specificare i requisiti delle risorse nelle sezioni INF DDInstall.LogConfigOverride.
ID hardware per ogni funzione del dispositivo.
Specificare gli ID hardware in una sezione INF DDInstall.HW.
Mappa delle risorse per ogni funzione del dispositivo, identificando le risorse padre richieste da ogni funzione figlio.
Specificare le mappe delle risorse in un inF DDInstall.Sezione HW . Per altre informazioni sulla creazione di mappe delle risorse, vedere Creating Resource Mappe for a Multifunction Device (Creazione di Mappe risorse per un dispositivo multifunzione).
L'INF deve riformulare tutti i requisiti delle risorse specificati dal dispositivo perché se le configurazioni di override sono presenti in INF, il gestore PnP non usa requisiti delle risorse del dispositivo dal dispositivo.
Per un dispositivo di questo tipo, è possibile programmare il registro delle opzioni di configurazione usando una voce PcCardConfig , simile alla programmazione di un dispositivo a funzione singola. La voce PcCardConfig contiene informazioni applicabili all'intero dispositivo. La voce PcCardConfig è documentata nella direttiva INF LogConfig.
Quando si specifica una voce PcCardConfig per un dispositivo multifunzione, il formato di ConfigIndex corrisponde a quello definito per un dispositivo a funzione singola. Il registro di configurazione per le schede PC a funzione singola contiene un indice per un set di risorse definite negli attributi del dispositivo. Questa direttiva può essere usata anche con determinati dispositivi multifunzione che usano il formato basato su indice del registro delle opzioni di configurazione.
L'esempio seguente mostra un file INF per l'installazione di un dispositivo multifunzione che usa mf.sys come driver del bus e presenta registri di configurazione incompleti.
; 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"
Un INF come quello illustrato in precedenza copia l'ID e le informazioni sulle risorse per le funzioni figlio nel Registro di sistema. Il driver mf.sys recupera le informazioni dal Registro di sistema quando enumera le funzioni figlio del dispositivo.