Compartilhar via


Loading Device Drivers

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Quando OEMInit Executa, você deve iniciar depuração Ethernet, serial depuração, ou qualquer outra depuração métodos. As seguinte informações recurso armazenar locais para esses depuração métodos:

  • Inicialize argumentos no carregador de inicializar. Argumentos de inicialização fornecem informações recurso para configurar o hardware de uma maneira específica.
    De exemplo, solicitação de interrupção (IRQ) para a depuração Ethernet adaptador pode ser passado como um argumento inicializar.
  • Disco rígido-codificado informações recurso na OAL.
  • Recursos podem ser descobertos pela OAL.

Além disso, o Registro pode conter cópias das informações neste recurso. Armazenar cópias das informações recurso no Registro, se a depuração recursos são fixo e conhecidos em avançado. Isso permite que o Device Manager para carregar, executar e, em seguida, iniciar o I/O Resource Manager, que lê esses disponível recursos do Registro.

A OAL talvez precise configurar e enumerar um barramento, such as o barramento PCI, para operar um dispositivo usado para depuração serviços. De exemplo, um adaptador Ethernet no barramento de PCI, que é para depuração Ethernet serviços necessidades seus recursos e pontes intermediários ser configurado para ser funcional. Você pode ignorar outros dispositivos porque o driver barramento PCI executa a configuração e enumeração.

Informações de recurso configura a depuração dispositivos e inicializa suas associado serviços. A OAL é responsável por colocar informações esse recurso em uma chave Registro e torná-lo acessível para o driver. A OAL usa o Funções do auxiliar de registro Para preencher fora informações do dispositivo de em um PCI_REG_INFO estrutura, definida no PCIReg.h. Em seguida, chama o OS KernelIoControl Com IOCTL_HAL_INITREGISTRY Para habilitar a função auxiliar PCIReg ser chamado para preencher o Registro. Este método é preferido, se a depuração recursos são selecionável no tempo inicializar, se elas são descobertas através de enumeração barramento ou ambos.

O Device Manager carrega o enumerador de barramento HKEY_LOCAL_MACHINE\RootKey Onde RootKey é um valor definido na Chave HKEY_LOCAL_MACHINE\Drivers. Se a pasta RootKey valor não está definida, ela padrão Drivers. Atualmente, conjuntos Common.reg RootKey Igual a Drivers\BuiltIn. Isso significa que o Device Manager procura o A DLL valor para carregar o enumerador barramento em HKEY_LOCAL_MACHINE\Drivers\BuiltIn. O enumerador barramento, BusEnum.dll, inicializa o processo de verificação de Registro para barramentos adicionais e os dispositivos a ser carregado de subchaves das RootKey.

Algumas da RootKey Subchaves descrevem interno ou possivelmente fixo barramentos ISA. O DLL carregado pode ser BusEnum.dll, ou qualquer outro driver barramento que você escolher.

Uma da RootKey Subchaves talvez PCI. Normalmente, o DLL listado na PCI chave é o driver barramento PCI, que é carregado pelo BusEnum.dll. Entradas do Registro para o driver barramento PCI incluem recursos disponível para o barramento PCI. Normalmente, o HKEY_LOCAL_MACHINE\RootKey\PCI\Order valor será definido para que o driver barramento PCI é carregado por último, que permite que todos os recursos fixos a ser alocada para os recursos flexíveis dos dispositivos PCI são configurados. Driver Registro as entradas são listadas sob o PCI chave, que representa os dispositivos que residir no barramento PCI.

A seguinte tabela mostra os valores que drivers barramento PCI, com associado físico dispositivos, usam ou geram.

Subchave Tipo Descrição

MemBase

DWORD Ou MULTI_SZ

Endereços base de E/S Memory-mapped.

MemLen

DWORD Ou MULTI_SZ

Comprimento de intervalos de memória mapeada correspondente para Membase.

IoBase

DWORD Ou MULTI_SZ

Endereço base de E/S Port-mapped.

IoLen

DWORD Ou MULTI_SZ

Comprimento de intervalos de porta-mapeado correspondente para IoBase.

InterfaceType

DWORD Ou MULTI_SZ

Tipo interface de hardware. Para obter mais informações, consulte INTERFACE_TYPE.

IRQ

DWORD Ou MULTI_SZ

Opcional. Números de IRQ lógicos.

SysIntr

DWORD Ou MULTI_SZ

Sistema interrupção números correspondente para os IRQs.

O SysIntr valor é um mapeamento da IRQ Conforme especificado pela OAL. Alguns drivers barramento, such as driver de barramento PCI, geram ambos o IRQ e SysIntr Valores e gravar o Registro-los. Se BusEnum.dll enumera a chave Registro, exigido para definir o SysIntr valor no apropriado arquivo Registro.

Alguns drivers barramento, such as driver de barramento PCI, podem exigir valores adicionais. De exemplo, o driver barramento PCI precisa distinguir entre instâncias do mesmo dispositivo.

A seguinte tabela mostra esses valores de identificação adicional.

Subchave Tipo Descrição

BusNumber

DWORD

Número barramento PCI do dispositivo.

DeviceNumber

DWORD

Número do dispositivo no barramento.

FunctionNumber

DWORD

Identifica um das funções possíveis oito implementadas no dispositivo.

Após enumerando o Registro, o enumerador barramento carrega drivers para interno todos os dispositivos e todos os drivers barramento ele reconhece no sistema. Barramento drivers são subseqüentemente responsáveis por carregando drivers para os dispositivos em seus barramentos. De exemplo, o driver controlador PCMCIA hospedar carrega drivers para todos os dispositivos cliente cartão PC.

Registro Device-specific chaves residir no apropriado chave Registro driver barramento, não em Device Manager. Drivers de barramento devem carregar seus drivers cliente e você deve atualização entradas Registro driver de barramento de acordo.

See Also

Reference

ActivateDeviceEx

Concepts

Bus Enumerator

Other Resources

PCI Bus Driver