Compartilhar via


XXX_PreDeinit (Device Manager)

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

A função notifica o driver para a instância dispositivo como inválido e Wake aguardando segmentos marca.

Syntax

BOOL XXX_PreDeinit(
  DWORD hDeviceContext 
);

Parameters

  • hDeviceContext
    [no] Identificador para o contexto dispositivo. A função XXX_Init (Device Manager) Cria e retorna esse identificador.

Remarks

Se estiver presente, XXX_PreClose (Device Manager)XXX_PreDeinit Devem também ser presente ou o driver não irá carregar.

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.

Segmentos pode bloco em um driver, e esses segmentos bloqueados talvez não consiga recursos versão associado com a instância identificador ou dispositivo. A seguinte lista mostra as condições de corrida relacionado para segmentos bloqueados não poder recursos versão:

  • Um condição de concorrência pode ocorrer se Device Manager tenta descarregar um dispositivo quando XXX_Deinit (Device Manager) função do driver de dispositivo executa em um segmento, enquanto outro segmento tenta aberto um identificador. Nesses casos, da perspectiva do driver, XXX_Deinit é chamado antes XXX_Open (Device Manager). Isso pode acontecer durante prolongada e pesado CPU carregada quando os drivers são descarregar e recarregar freqüentes. Quando Device Manager chama o XXX_Deinit ponto de entrada, drivers devem acordar segmentos que são bloqueados no E/S e livre recursos associado com a instância identificador ou dispositivo. Se chama Device Manager XXX_Open Após chamado XXX_Deinit, alguns drivers podem falhar.
  • Um condição de concorrência semelhantes podem ocorrer entre operações E/S em um segmento e outro segmento chamado CloseHandle. Quando Device Manager chama o ponto de entrada XXX_Close (Device Manager), drivers devem acordar segmentos bloqueados em desse identificador e livre recursos associado com esse identificador. Se Device Manager chama um ponto de entrada E/S, such as XXX_IOControl (Device Manager) Após chamado XXX_Close, alguns drivers podem falhar.

Para endereço esses corrida condições, Device Manager procura opcional dois pontos entrada driver, XXX_PreClose e XXX_PreDeinit. Eles têm as mesmas assinaturas como o XXX_Close e XXX_Deinit entrada pontos. Device Manager primeiro chamadas XXX_PreClose e aguarda para chamar XXX_Close até que nenhum externo segmentos estão sendo executadas do driver DLL usando o identificador de fechamento. Da mesma forma, chamadas Device Manager XXX_PreDeinit Para informar o driver para a instância dispositivo como inválido e Wake aguardando segmentos marca. Se um driver exporta XXX_PreDeinit Em seguida, chama Device Manager XXX_Deinit Quando nenhum externo segmentos estão sendo executadas no driver DLL usando o identificador. Assim, o XXX_PreClose e XXX_PreDeinit entrada pontos permitir que o driver para invalidar alças separadamente e acordar segmentos antes XXX_Close e XXX_Deinit São chamado.

See Also

Reference

ActivateDeviceEx
XXX_Close (Device Manager)
XXX_Deinit (Device Manager)
XXX_Init (Device Manager)
XXX_IOControl (Device Manager)
XXX_Open (Device Manager)
XXX_PreClose (Device Manager)

Other Resources

Device Manager
CloseHandle