支援具有不完整設定緩存器的計算機卡片
如果多功能 16 位 PC 卡裝置沒有每個功能的組態緩存器,這類裝置的廠商可以使用系統提供的多功能總線驅動程式(mf.sys),但必須提供自定義 INF 檔案,並支援個別函式。
NT 型平臺上這類裝置的廠商可以使用下列系統提供的元件:
多功能裝置的函式驅動程式。 (系統提供)
裝置的自定義 INF 必須將mf.sys指定為裝置的函式驅動程式。 系統提供的mf.sys驅動程序接著會列舉裝置的功能。
如需使用系統提供的mf.sys驅動程式的詳細資訊,請參閱 使用系統提供的多功能總線驅動程式 。
這類裝置的廠商必須提供下列專案:
多功能裝置的自定義 INF 檔案。 (廠商提供)
廠商必須提供多功能 INF 檔案,指定mf.sys做為多功能總線驅動程式、指定類別 “MultiFunction” (其相關聯的 GUID 如 devguid.h 中所定義),並提供遺漏的組態緩存器資訊。 請參閱本節稍後的進一步資訊。
裝置每個函式的 PnP 函式驅動程式。 (廠商提供)
由於多功能總線驅動程式會處理多功能語意,因此函式驅動程式可以是當函式封裝為個別裝置時所使用的相同驅動程式。
裝置每個功能的 INF 檔案。 (廠商提供)
INF 檔案可以是封裝為個別裝置時所使用的相同檔案。 INF 檔案不需要任何特殊的多功能語意。
廠商為這類裝置提供的自定義 INF 必須指定:
mf.sys作為裝置的服務。
如需詳細資訊,請參閱 使用系統提供的多功能總線驅動程式 。
多功能裝置的資源需求。
在 INF DDInstall.LogConfigOverride 區段中指定資源需求。
裝置每個功能的硬體識別碼。
在 INF DDInstall.HW 區段中指定硬體識別碼。
裝置每個函式的資源對應,識別每個子函式所需的父資源。
在 INF DDInstall 中指定資源對應。HW 區段。 如需建立資源對應的詳細資訊,請參閱建立多功能裝置的資源 地圖。
INF 必須重述裝置所指定的所有資源需求,因為如果 INF 中有覆寫組態,PnP 管理員不會使用裝置中的任何裝置資源需求。
針對這類裝置,組態選項緩存器可以使用PcCardConfig專案進行程式設計,類似於設計單一函式裝置。 PcCardConfig 專案包含適用於整個裝置的資訊。 PcCardConfig 項目記載於 INF LogConfig 指示詞中。
指定多功能裝置的 PcCardConfig 專案時,ConfigIndex 的格式與針對單一函式裝置定義的格式相同。 單一函式計算機卡片的組態緩存器包含該裝置屬性中所定義之一組資源的索引。 這個指示詞也可以與使用組態選項緩存器索引型格式的特定多功能裝置搭配使用。
下列範例顯示用於安裝多功能裝置的 INF 檔案,該裝置會使用 mf.sys 作為其總線驅動程式,而且具有不完整的組態緩存器。
; 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"
如上所示的 INF,會將子函式的標識碼和資源資訊複製到登錄。 mf.sys驅動程式會在列舉裝置的子函式時,從登錄擷取資訊。