Função ExAcquireRundownProtection (wdm.h)
A rotina ExAcquireRundownProtection tenta adquirir proteção run-down em um objeto compartilhado para que o chamador possa acessar o objeto com segurança.
Sintaxe
BOOLEAN ExAcquireRundownProtection(
[in, out] PEX_RUNDOWN_REF RunRef
);
Parâmetros
[in, out] RunRef
Um ponteiro para uma estrutura EX_RUNDOWN_REF que foi inicializada por uma chamada anterior para a rotina ExInitializeRundownProtection. As rotinas de proteção executadas usam essa estrutura para acompanhar o status de execução do objeto compartilhado associado. Essa estrutura é opaca para drivers.
Valor de retorno
ExAcquireRundownProtection retornará verdadeiro se a rotina adquirir com êxito a proteção de run-down para o chamador. Caso contrário, ele retornará FALSE. Um valor retornado de FALSE indica que a execução do objeto foi iniciada e que o objeto deve ser tratado como inválido.
Observações
Para acessar com segurança um objeto compartilhado, um driver chama ExAcquireRundownProtection para adquirir a proteção de execução no objeto. A rotina retorna TRUE para indicar que a proteção de run-down está em vigor. Quando a proteção executada estiver em vigor, o driver poderá acessar o objeto com segurança sem o risco de que o objeto seja excluído antes da conclusão do acesso.
Desde que o bloco de execução em si não sejapagado, essa função pode ser chamada em DISPATCH_LEVEL.
Depois de concluir o acesso, o driver chama ExReleaseRundownProtection para liberar a proteção de run-down adquirida anteriormente.
Se ExAcquireRundownProtection retornar FALSE, o objeto não estará mais acessível. Por exemplo, se o objeto for substituído por um novo, o chamador deverá aguardar o proprietário do objeto criar o novo objeto e negociar o acesso ao novo objeto.
Para obter mais informações, consulte Run-Down Protection.