XXX_Init (Device Manager)
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)