Compartilhar via


Converting a Legacy PCMCIA Driver to a Bus-Agnostic Driver

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Embora o driver barramento PC Card suporta herdado todos os drivers PCMCIA. Microsoft recomenda que você converter herdado drivers PCMCIA ao barramento-drivers de placa desconhecido PC. Um barramento-desconhecido driver é um padrão driver que é relativamente simples para implementar e podem ser compartilhados por vários implementações barramento para o mesmo conjunto de chips hardware. De exemplo, o barramento-driver desconhecido PCI NE2000 funciona corretamente para o cartão NE2000 PCMCIA. As funções cartão NE2000 PCMCIA o mesmo com o driver PCI NE2000 como ela seria com o driver PCMCIA NE2000.

Embora o herdado driver PCMCIA ainda é com suporte, Microsoft recomenda que você migrar um driver PCMCIA para o barramento-desconhecido driver modelo. Para informações sobre o barramento-desconhecido driver modelo, consulte Drivers de cliente Bus-Agnostic PC da placa.

Ao contrário de herdado driver PCMCIA, o driver barramento PC Card não usa o Detectar função de um driver Class-specific, such as um driver NE2000. Em vez disso, ele usa um modelo Registro para implementar um mecanismo de correspondência introduzido pelo PCI. Diferentemente PCI, que usa Class ID para localizar uma entrada, o driver barramento PC Card usa um substituído endereço ISA para localizar uma entrada. Para exemplo, um driver NE2000 suporta o substituído endereço PCMCIA em 0x300, 0x320 e 0x340. Outro exemplo é o driver COM16550, que suporta o substituído endereço 0x3f8, 0x2f8, 0x3e8 e 0x2e8. Além disso, um valor adicional, such as número de identificação função, é usado para compatível. Se um driver Card-specific usa o mesmo endereço como uma PCMCIA-driver classe, ele pode implementar o Plug and Play identificação para carregar um driver especificado.

O 16-bit PC placa correspondência modelo está localizado em HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE. O 32-bit PC placa correspondência modelo está localizado em HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template. Um 32-bit cartão PC tem o mesmo modelo de correspondência como um driver barramento PCI.

O 16-bit Plug and Play D entrada está localizada em HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\PNP. A 32-bit Plug and Play identificação entrada está localizada em HKEY_LOCAL_MACHINE\Drivers\PCCARD\CARDBUS\PNP.

Um entrada do Registro Plug and Play aparece em uma pesquisa antes uma entrada Registro modelo. Se um dispositivo tiver um endereço PCMCIA ISA que está em conflito com um modelo existente, use a entrada Registro Plug and Play identificação instead of a entrada Registro modelo. Se você desenvolver um driver para um cartão PCMCIA específica, use a entrada Registro Plug e Play ID para evitar conflitos futuras.

A seguinte entrada Registro deve ser criada para suporte um driver de cartão substituído PC. Pcc_pcm.dll é renomeado para PCMCIA.dll durante a criar processo imagem.

[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\PCMCIA]
  "Dll"="pcmcia.dll"
  "NoConfig"=dword:1
  "IClass"=multi_sz:"{6BEAB08A-8914-42fd-B33F-61968B9AAB32}=PCMCIA Card Services"

O seguinte exemplo Registro mostra a implementação de um barramento-desconhecido driver para um driver NE2000 PCMCIA.

[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\NE2000A]
  "Dll"="ndis.dll"
  "Prefix"="NDS"
  "Miniport"="NE2000"
  "FUNCTION_ID"=dword:6
  "INTERRUPT_MASK"=dword:ffff
  "IoBase"=dword:300
  "IoLen"=dword:20
[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\NE2000B]
  "Dll"="ndis.dll"
  "Prefix"="NDS"
  "Miniport"="NE2000"
  "FUNCTION_ID"=dword:6
  "INTERRUPT_MASK"=dword:ffff
  "IoBase"=dword:320
  "IoLen"=dword:20
[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\NE2000C]
  "Dll"="ndis.dll"
  "Prefix"="NDS"
  "Miniport"="NE2000"
  "FUNCTION_ID"=dword:6
  "INTERRUPT_MASK"=dword:ffff
  "IoBase"=dword:340
  "IoLen"=dword:20

O seguinte exemplo Registro mostra a implementação de um barramento-desconhecido driver para um driver COM 16550.

[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\COM_CARDA]
  "FUNCTION_ID"=dword:2
  "IoBase"=dword:3f8
  "IoLen"=dword:8
  "INTERRUPT_MASK"=dword:ffff
  "DeviceArrayIndex"=dword:0
  "Prefix"="COM"
  "Dll"="com16550.dll"
; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
  "IsrDll"="isr16550.dll"
  "IsrHandler"="ISRHandler"
[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\COM_CARDB]
  "FUNCTION_ID"=dword:2
  "IoBase"=dword:2f8
  "IoLen"=dword:8
  "INTERRUPT_MASK"=dword:ffff
  "DeviceArrayIndex"=dword:0
  "Prefix"="COM"
  "Dll"="com16550.dll"
; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
  "IsrDll"="isr16550.dll"
  "IsrHandler"="ISRHandler"
[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\COM_CARDC]
  "FUNCTION_ID"=dword:2
  "IoBase"=dword:3e8
  "IoLen"=dword:8
  "INTERRUPT_MASK"=dword:ffff
  "DeviceArrayIndex"=dword:0
  "Prefix"="COM"
  "Dll"="com16550.dll"
; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
  "IsrDll"="isr16550.dll"
  "IsrHandler"="ISRHandler"
[HKEY_LOCAL_MACHINE\Drivers\PCCARD\PCMCIA\TEMPLATE\COM_CARDD]
  "FUNCTION_ID"=dword:2
  "IoBase"=dword:2e8
  "IoLen"=dword:8
  "INTERRUPT_MASK"=dword:ffff
  "DeviceArrayIndex"=dword:0
  "Prefix"="COM"
  "Dll"="com16550.dll"
; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
  "IsrDll"="isr16550.dll"
  "IsrHandler"="ISRHandler"

Se seu cartão PC requer funcionalidade adicional que não é possível o ativador usar como padrão identificador, você pode inserir a seguinte valor do Registro:

"NoConfig" = dword:1

Em seguida, configurar a placa PC usando serviços cartão, que é semelhante ao herdado serviços cartão PCMCIA. Ele foi modificado, no entanto, para adaptar a atual requisitos. Para obter mais informações sobre cartão serviços, consulte Driver de barramento da placa PC.

See Also

Concepts

PC Card Bus Driver
Legacy PCMCIA Driver Support

Other Resources

PC Card Drivers