A lógica que está sendo usada faz com que o sistema trave em determinadas condições de corrida. A taxa de falha observada é de cerca de 10%. A taxa de falha é lenta em produção, mas pode ser forçada se você alterar alguns valores de registro e iniciar o serviço manualmente. A função que causa a falha do sistema é
_pst_is_process_scsrvc.
O
_pst_is_process_scsrvc a função tenta adquirir um bloqueio de leitura de um recurso compartilhado. Se esse recurso não tiver sido inicializado corretamente, o problema ocorrerá. O módulo que filtra o IRPs é inicializado logo após a
DriverEntry a função é chamada pelo sistema operacional.
OBSERVAÇÃO: Esse problema ocorre durante todas as inicializações de módulos e recursos no nível de kernel.