Карты ПК с неполными адресами регистра конфигурации
Если многофункциональное 16-разрядное устройство PC Card имеет регистры конфигурации для каждой функции, но не содержит указателей в памяти атрибутов на все наборы регистров (не поддерживает LONGLINK_MFC кортеж), поставщик такого устройства может использовать системный драйвер многофункциональной шины (mf.sys), но должен предоставить пользовательский INF-файл и поддержку отдельных функций.
Поставщик такого устройства на платформе на основе NT может использовать предоставляемый системой драйвер функции для многофункционального устройства.
В пользовательском inf-файле для устройства необходимо указать mf.sys в качестве драйвера функции для устройства. Затем системный драйвер mf.sys перечисляет функции устройства.
Дополнительные сведения об использовании системного драйвера mf.sys см. в статье Использование драйвера System-Supplied многофункциональной шины .
Поставщик такого устройства должен предоставить следующее:
Пользовательский INF-файл для многофункционального устройства. (предоставляется поставщиком)
Поставщик должен предоставить многофункциональный INF-файл, указывающий mf.sys в качестве драйвера многофункциональной шины, класс MultiFunction (со связанным ИДЕНТИФИКАТОРом GUID, как определено в devguid.h), и предоставить отсутствующие адреса регистра конфигурации. Дополнительные сведения см. далее в этом разделе.
Драйвер функции PnP для каждой функции устройства. (предоставляется поставщиком)
Так как драйвер многофункциональной шины обрабатывает многофункциональную семантику, драйверы функций могут быть теми же драйверами, которые используются при упаковке функций как отдельных устройств.
INF-файл для каждой функции устройства. (предоставляется поставщиком)
INF-файлы могут быть теми же файлами, которые используются при упаковке функций в виде отдельных устройств. Для INF-файлов не требуется специальная многофункциональная семантика.
Настраиваемый INF-файл для такого многофункционального устройства должен содержать по крайней мере один раздел INF DDInstall.LogConfigOverride. Раздел переопределения должен содержать запись MfCardConfig для каждой функции, определяющую расположение каждого набора регистров конфигурации.
Inf должен переопределять все требования к ресурсам, заданные устройством, так как если конфигурации переопределения присутствуют в INF, диспетчер PnP не использует требования к ресурсам устройства с устройства.
Укажите записи MfCardConfig , используя синтаксис, описанный в директиве INF LogConfig.
Например, рассмотрим следующий фрагмент пользовательского INF-кода для многофункционального устройства PC Card, содержащего модем и сетевой адаптер:
;...
[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).
0 (IoConfigIndex)
Указывает, что ресурсы ввода-вывода для этой функции перечислены в первой записи IOConfig в этом разделе. Индекс, равный нулю, указывает на первую запись, которая в данном примере называется "IOConfig = 3F8-3FF".
A (attrs)
Указывает драйверу шины включить включение звука для этой функции, которая является типичной для модема.
Вторая запись MfCardConfig содержит сведения о второй функции на устройстве (сетевом адаптере в этом примере). Эта запись указывает, что имеется второй набор регистров конфигурации со смещением 0x1080. Драйвер шины запишет значение ConfigOptions 0x47 в регистр параметра конфигурации для этой функции. Значение IoConfigIndex одного из них указывает драйверу шины использовать вторую запись IOConfig в этом разделе (IOConfig = 10@100-FFFF%FFF0), чтобы запрограммировать базовые и предельные регистры ввода-вывода для этой функции.
Включите несколько DDInstall. Переопределитераздел N в INF, чтобы указать несколько диапазонов портов ввода-вывода, не являющихся последовательные.
Если устройство использует окно памяти, которое не основано на нуле, то DDInstall. ПереопределениеN разделов также должно содержать запись PcCardConfig . Если раздел переопределения содержит записи MfCardConfig и PcCardConfig , драйвер шины PCMCIA игнорирует значение ConfigIndex в записи PcCardConfig и просто использует сведения MemoryCardBaseN . Дополнительные сведения о записи PcCardConfig см. в разделе Поддержка карт PC С неполными регистрами конфигурации.