Tarjetas de EQUIPO con direcciones de registro de configuración incompletas
Si un dispositivo de tarjeta PC multifunción de 16 bits tiene registros de configuración para cada función, pero no contiene punteros en memoria de atributo a todos los conjuntos de registros (no admite la tupla de LONGLINK_MFC), el proveedor de dicho dispositivo puede usar el controlador de bus multifunción proporcionado por el sistema (mf.sys), pero debe proporcionar un archivo INF personalizado y compatibilidad con las funciones individuales.
El proveedor de este tipo de dispositivo en una plataforma basada en NT puede usar un controlador de función suministrado por el sistema para el dispositivo multifunción.
Un INF personalizado para el dispositivo debe especificar mf.sys como controlador de función para el dispositivo. A continuación, el controlador de mf.sys proporcionado por el sistema enumerará las funciones del dispositivo.
Consulte Uso del controlador de bus multifunción System-Supplied para obtener más información sobre el uso del controlador mf.sys suministrado por el sistema.
El proveedor de este tipo de dispositivo debe proporcionar lo siguiente:
Un archivo INF personalizado para el dispositivo multifunción. (suministrado por el proveedor)
El proveedor debe proporcionar un archivo INF multifunción que especifique mf.sys como controlador de bus multifunción, especifica la clase "MultiFunction" (con su GUID asociado tal como se define en devguid.h) y proporciona las direcciones de registro de configuración que faltan. Vea más información más adelante en esta sección.
Un controlador de función PnP para cada función del dispositivo. (suministrado por el proveedor)
Dado que el controlador de bus multifunción controla la semántica multifunción, los controladores de función pueden ser los mismos controladores que se usan cuando las funciones se empaquetan como dispositivos individuales.
Un archivo INF para cada función del dispositivo. (suministrado por el proveedor)
Los archivos INF pueden ser los mismos que se usan cuando las funciones se empaquetan como dispositivos individuales. Los archivos INF no necesitan ninguna semántica multifunción especial.
El INF personalizado para este tipo de dispositivo multifunción debe contener al menos una sección INF DDInstall.LogConfigOverride. La sección override debe contener una entrada MfCardConfig para cada función, identificando la ubicación de cada conjunto de registros de configuración.
El INF debe restar todos los requisitos de recursos especificados por el dispositivo porque si las configuraciones de invalidación están presentes en inf, el administrador de PnP no usa ningún requisito de recursos de dispositivo del dispositivo.
Especifique las entradas MfCardConfig mediante la sintaxis descrita en directiva INF LogConfig.
Por ejemplo, considere el siguiente extracto de un INF personalizado para un dispositivo de tarjeta PC multifunción que contiene un módem y un adaptador de red:
;...
[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
;...
En el ejemplo se muestran dos entradas MfCardConfig , una para cada función del dispositivo. La primera entrada MfCardConfig contiene la siguiente información:
1000 (ConfigRegBase)
Especifica que hay un conjunto de registros de configuración en la memoria de atributo de la tarjeta en 0x1000 de desplazamiento. En este ejemplo, la información de estos registros describe la función de módem en la tarjeta.
47 (ConfigOptions)
Especifica el valor hexadecimal para que el controlador de bus programe en el registro de la opción de configuración en el desplazamiento configRegBase (0x1000).
0 (IoConfigIndex)
Especifica que los recursos de E/S para esta función se enumeran en la primera entrada ioConfig de esta sección. Un índice de cero indica la primera entrada, que en este ejemplo es "IOConfig = 3F8-3FF".
A (attrs)
Dirige al controlador de autobús para activar la habilitación de audio para esta función, que es habitual para un módem.
La segunda entrada MfCardConfig contiene información sobre la segunda función del dispositivo (el adaptador de red, en este ejemplo). Esta entrada especifica que hay un segundo conjunto de registros de configuración en 0x1080 de desplazamiento. El controlador de bus escribirá el valor ConfigOptions de 0x47 en el registro de la opción de configuración para esta función. El valor de IoConfigIndex de uno dirige al controlador de bus para usar la segunda entrada IOConfig de esta sección (IOConfig = 10@100-FFFF%FFF0) para programar la base de E/S y limitar los registros de esta función.
Incluya más de un DDInstall. InvalideN sección del INF para especificar más de una opción de intervalos de puertos de E/S noquentiales.
Si el dispositivo usa una ventana de memoria que no se basa en cero, DDInstall. InvalidarN secciones también debe incluir una entrada PcCardConfig . Si una sección de invalidación tiene una entrada MfCardConfig y una entrada PcCardConfig , el controlador del bus PCMCIA omite el valor ConfigIndex en la entrada PcCardConfig y simplemente usa la información memoryCardBaseN . Para obtener más información sobre la entrada PcCardConfig, consulte Compatibilidad con tarjetas PC que tienen registros de configuración incompletos.