Cartões de computador com endereços de registro de configuração incompletos
Se um dispositivo pc card multifuncional de 16 bits tiver registros de configuração para cada função, mas não contiver ponteiros na memória do atributo para todos os conjuntos de registros (não dá suporte à tupla LONGLINK_MFC), o fornecedor desse dispositivo pode usar o driver de barramento multifuncional fornecido pelo sistema (mf.sys), mas deve fornecer um arquivo INF personalizado e suporte para as funções individuais.
O fornecedor desse dispositivo em uma plataforma baseada em NT pode usar um driver de função fornecido pelo sistema para o dispositivo multifuncional.
Um INF personalizado para o dispositivo deve especificar mf.sys como o driver de função para o dispositivo. O driver mf.sys fornecido pelo sistema enumerará as funções do dispositivo.
Consulte Usando o System-Supplied Driver de Barramento Multifuncional para obter mais informações sobre como usar o driver de mf.sys fornecido pelo sistema.
O fornecedor desse dispositivo deve fornecer o seguinte:
Um arquivo INF personalizado para o dispositivo multifuncional. (fornecido pelo fornecedor)
O fornecedor deve fornecer um arquivo INF multifuncional que especifica mf.sys como o driver de barramento multifuncional, especifica a classe "MultiFunction" (com seu GUID associado, conforme definido em devguid.h), e fornece o endereço(es) de registro de configuração ausente. Confira mais informações mais adiante nesta seção.
Um driver de função PnP para cada função do dispositivo. (fornecido pelo fornecedor)
Como o driver de barramento multifuncional lida com a semântica multifuncional, os drivers de função podem ser os mesmos drivers usados quando as funções são empacotadas como dispositivos individuais.
Um arquivo INF para cada função do dispositivo. (fornecido pelo fornecedor)
Os arquivos INF podem ser os mesmos arquivos usados quando as funções são empacotadas como dispositivos individuais. Os arquivos INF não precisam de nenhuma semântica multifuncional especial.
O INF personalizado para esse dispositivo multifuncional deve conter pelo menos uma seção INF DDInstall.LogConfigOverride. A seção de substituição deve conter uma entrada MfCardConfig para cada função, identificando o local de cada conjunto de registros de configuração.
O INF deve reafirmar todos os requisitos de recurso especificados pelo dispositivo porque, se as configurações de substituição estiverem presentes no INF, o gerenciador PnP não usará nenhum requisito de recurso de dispositivo do dispositivo.
Especifique as entradas MfCardConfig usando a sintaxe descrita na Diretiva LogConfig do INF.
Por exemplo, considere o seguinte trecho de um INF personalizado para um dispositivo pc card multifuncional que contém um modem e um adaptador de rede:
;...
[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
;...
O exemplo mostra duas entradas MfCardConfig , uma para cada função do dispositivo. A primeira entrada MfCardConfig contém as seguintes informações:
1000 (ConfigRegBase)
Especifica que há um conjunto de registros de configuração na memória de atributo do cartão em deslocamento 0x1000. Neste exemplo, as informações nesses registros descrevem a função modem no cartão.
47 (ConfigOptions)
Especifica o valor hexadecimal para o driver de barramento programar no registro da opção de configuração no deslocamento ConfigRegBase (0x1000).
0 (IoConfigIndex)
Especifica que os recursos de E/S para essa função estão listados na primeira entrada IOConfig nesta seção. Um índice de zero indica a primeira entrada, que neste exemplo é "IOConfig = 3F8-3FF".
A (attrs)
Orienta o driver de barramento a ativar a habilitação de áudio para essa função, que é típica de um modem.
A segunda entrada MfCardConfig contém informações sobre a segunda função no dispositivo (o adaptador de rede, neste exemplo). Essa entrada especifica que há um segundo conjunto de registros de configuração no deslocamento 0x1080. O driver de barramento gravará o valor ConfigOptions de 0x47 no registro da opção de configuração para essa função. O valor IoConfigIndex de um direciona o driver de barramento a usar a segunda entrada IOConfig nesta seção (IOConfig = 10@100-FFFF%FFF0) para programar a base de E/S e limitar registros para essa função.
Inclua mais de um DDInstall. Substituan seção no INF para especificar mais de uma opção de intervalos de portas de E/S não sequenciais.
Se o dispositivo usar uma janela de memória que não esteja baseada em zero, a DDInstall. A substituiçãode N seções também deve incluir uma entrada PcCardConfig . Se uma seção de substituição tiver uma entrada MfCardConfig e uma entrada PcCardConfig , o driver de barramento PCMCIA ignorará o valor ConfigIndex na entrada PcCardConfig e usará apenas as informações memoryCardBaseN . Consulte Suporte a cartões de computador que têm registros de configuração incompletos para obter mais informações sobre a entrada PcCardConfig .