Compartilhar via


XXX_Init (Device Manager)

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa função inicializa um dispositivo.

Syntax

DWORD XXX_Init(
  LPCTSTR pContext,
  DWORD dwBusContext
);

Parameters

  • pContext
    [no] Ponteiro para uma seqüência de caracteres que contém o caminho Registro para o ativo chave para o driver interface transmitir.
  • lpvBusContext
    [no] Ponteiro potencialmente Process-mapped passado como o quarto parâmetro para ActivateDeviceEx. Se este driver foi carregado pelo herdado mecanismos, em seguida, dwBusContext é zero. Esse ponteiro, se usados, apenas foi mapeado novamente à medida que ele passam pela biblioteca servidor protegido (PSL). O XXX_Init função é responsável por executar a verificação de proteção Todos os. **

Return Value

Retorna um identificador para o contexto dispositivo criado se bem-sucedido. Retorna zero se não bem-sucedido. Esse identificador é passado para o XXX_Open (Device Manager), XXX_PowerDown (Device Manager), XXX_PowerUp (Device Manager), e XXX_Deinit (Device Manager) funções.

Remarks

Device Manager chama essa função as a result of um chamar para o ActivateDeviceEx função. Quando o usuário inicia usando um dispositivo, such as inserindo um PC Card, Device Manager chama essa função para inicializar o dispositivo. Aplicativos não chamar essa função.

Se sua interface transmitir suportar múltiplo instâncias do mesmo tipo de nome arquivo dispositivo, você só precisa esperar um chamar para o XXX_Init função de cada instância do nome do arquivo dispositivo. O XXX_Init função retorna um separar identificador cada tempo ele executa. Um exemplo é o driver porta serial exemplo, localizado em % _WINCEROOT%\Public\Common\Oak\Drivers\Serial. Ele oferece suporte a múltiplo comX: Nomes arquivo dispositivo. Fluxo interfaces que somente suporte uma instância de um nome arquivo dispositivo poderá retornar qualquer valor non-zero.

Device Manager especifica um ponteiro para uma seqüência de caracteres que contém o caminho Registro para o ativo chave do dispositivo específico PC Card na pContext parâmetro. Geralmente, o seqüência de caracteres contém o caminho Registro a uma subchave numerada das HKEY_LOCAL_MACHINE\Drivers\Active chave Registro. Sua função inicialização usa esse informações para acessar dados armazenados no Registro.

A seguinte lista mostra as tarefas essa função pode executar:

  • Inicialize o dispositivo instalado para um estado usar como padrão.
  • Alocar os recursos usados globalmente pela driver de dispositivo.
  • Registrar um função callback status com serviços cartão PC.
    Quando o status das alterações de dispositivo, o sistema operacional chama este função callback status. De exemplo, o status de uma PC Card muda quando você inseri-la ou removê-lo.
  • Mapear sistema memória e espaço E/S para uma memória dispositivo PC Card e E/S espaço.
  • Solicite notificação nos eventos callback específico.
  • Registre um função callback interrupção para um dispositivo Interrupt-driven.
    Quando o dispositivo gera uma interrupção, o sistema operacional chama este função callback interrupção.

Observação

Notificações prontas API não devem ser definidas na XXX_Init Rotina. Em vez disso, um driver deve usar o PostInit e BusPostInit IOCTLs para definir notificações prontas API. API prontas notificações podem ser definidas na XXXIOControl Rotina após a XXXInit Rotina completa. Essa implementação assegura que outros drivers não encontrará uma falha se alternar um contexto ocorrer após a XXX_Init Designa um API como pronto, mas antes de chamar conclui e um identificador dispositivo é retornada para o Gerenciador dispositivo.

O seguinte exemplo mostra as chaves Registro para definir poder PostInit e BusPostInit Chama irá ocorrer.

#define DEVLOAD_INITCODE_VALNAME TEXT("Ioctl") //Device IO control code to indicate context
#define DEVLOAD_INITCODE_VALTYPE REG_DWORD
#define DEVLOAD_BUSINITCODE_VALNAME TEXT("BusIoctl") //Bus IO control code to indicate context
#define DEVLOAD_BUSINITCODE_VALTYPE REG_DWORD

O seguinte estrutura de tópicos ilustra o real procedimento a serem seguidas ao usar PostInit e BusPostInit.

Carregar ordem 0

Driver1 - > Init()

Driver1 - > IOControl(IOCTL)

Driver2 - > Init()

Driver2 - > IOControl(BusIoctl)

Load Order 1

Driver3 - > Init()

Driver3 - > IOControl(IOCTL)

Driver4 - > Init()

Driver4 - > IOControl(IOCTL)

Device Manager usa o XXX prefixo. Ao implementar a interface transmitir, substituir XXX Com um prefixo apropriado para sua implementação específica ou não decorado usar nomes ponto de entrada em conjunto com DEVFLAGS_NAKEDENTRIES. Para obter mais informações sobre outros válido Sinalizadores valores, consulte ActivateDeviceEx.

Requirements

Header Developer Implemented
Library Developer Implemented
Windows Embedded CE Windows CE 1.0 and later

See Also

Reference

ActivateDeviceEx
XXX_Deinit (Device Manager)
XXX_IOControl (Device Manager)
XXX_Open (Device Manager)
XXX_PowerDown (Device Manager)
XXX_PowerUp (Device Manager)

Concepts

Device File Names