BUG: O PC Card do Tipo Paralelo Não Obtém Recursos de Entrada/Saída (I/O)

O suporte para o Windows XP terminou

A Microsoft terminou o suporte para o Windows XP em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Um driver para um PC Card com o código de função Paralelo não recebe nenhum recurso em IRP_MN_START_DEVICE no Windows XP. Isso normalmente faz o controlador do IRP (input/output request packet) PNP (Plug and Play) causar um erro em IRP_MN_START_DEVICE. O resultado é que o gerenciador de dispositivos marca o dispositivo com um ponto de exclamação em amarelo e o código de erro 10.

No entanto, se o driver obtiver sucesso com IRP_MN_START_DEVICE de uma forma ou de outra, o dispositivo pode aparecer no gerenciador de dispositivos como iniciado com sucesso, ainda que os seus recursos estejam faltando ou estejam incompletos.
Causa
O driver de barramento PCMCIA do Windows XP marca como inválida qualquer tupla de configuração que pertença a um dispositivo com código 3 (Paralelo) da tupla do ID (21) caso ela não tenha apenas dois intervalos de portas I/O, ou se a tupla de configuração solicitar algum intervalo de memória.

Por exemplo, uma porta paralela implementada em uma Placa de PC que solicita intervalos de porta I/O para LPT1, LPT2 ou LPT3 encontra todas as suas tuplas de configuração marcadas como inválidas. Isso faz o sistema não atribuir nenhum recurso ao dispositivo. O driver acha que IRP_MN_START_DEVICE possui uma lista de recursos vazia, e normalmente não usa esse IRP.
Resolução
Para solucionar este problema, adquira o service pack mais recente para Windows XP. Para obter informações adicionais, clique no número abaixo para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
322389 How to Obtain the Latest Windows XP Service Pack


Para contornar este comportamento, estenda as configurações que estão marcadas como inválidas usando uma diretiva IOConfig em uma seção LogConfig no dispositivo INF. Depois de fazer isso, você pode adicionar um intervalo de portas I/O fictício às configurações estendidas para satisfazer a necessidade de haver apenas dois intervalos de portas I/O.

O código de exemplo a seguir é uma seção LogConfig para uma placa que exigia o intervalo LPT1 e que foi corrigida para incluir um intervalo de porta I/O fictício em 0778-077F:
[MyDeviceInstallSection]...[MyDeviceInstallSection.LogConfigOverride]LogConfig=MyLogConfig...[MyLogConfig]ConfigPriority=NORMALIOConfig=378-37F(3ff::)IOConfig=778-77F(ffff::)				
NOTA: Este exemplo pressupõe que a porta paralela tenha um decodificador de 10 bits, que é o pior caso. Para um intervalo fictício, ainda que um decodificador de 16 bits tenha sido configurado, não há nenhum decodificador.
Situação
A Microsoft informa que, o(s) produto(s) da(s) empresa(s) listado(s) na secção "Aplica-se" deste artigo, podem apresentar problemas. Esse problema foi corrigido primeiro no Windows XP Service Pack 1.
Mais Informações
Aqui está um exemplo comum de tuplas que podem enfrentar o problema. Uma Placa de PC possui uma tupla de ID de função (21h) avaliada como 3 para que o dispositivo seja Paralelo. Dentre outras tuplas, o ID de função será:
21h TPL_CODE=CISTPL_FUNCID02h TPL_LINK03h TPLFID_FUNCTION00h 
kbBaseOS
Propriedades

ID do Artigo: 313580 - Última Revisão: 01/12/2015 19:23:07 - Revisão: 1.0

  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Home Edition
  • kbnosurvey kbarchive kbbug kbfix kboswin2000fix kbwinxpsp1fix KB313580
Comentários