XXX_PreClose (Device Manager)
9/8/2008
Essa função notifica o driver para o identificador de fechamento marca como inválido e a ativação qualquer aguardando segmentos.
Syntax
BOOL XXX_PreClose(
DWORD hOpenContext
);
Parameters
- hDeviceContext
[no] Identificador para o contexto dispositivo. O XXX_Init (Device Manager) função Cria e retorna esse identificador.
Remarks
Se XXX_PreClose estiver presente XXX_PreDeinit (Device Manager) 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 do driver de dispositivo XXX_Deinit (Device Manager) função 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 chamado segmento CloseHandle. Quando Device Manager chama o XXX_Close (Device Manager) ponto de entrada, 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, como 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. 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_PreDeinit (Device Manager)