Função PsSetCreateProcessNotifyRoutineEx (ntddk.h)
O PsSetCreateProcessNotifyRoutineEx registra ou remove uma rotina de retorno de chamada que notifica o chamador quando um processo é criado ou sai.
Sintaxe
NTSTATUS PsSetCreateProcessNotifyRoutineEx(
[in] PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
[in] BOOLEAN Remove
);
Parâmetros
[in] NotifyRoutine
Um ponteiro para a rotina PCREATE_PROCESS_NOTIFY_ROUTINE_EX a ser registrada ou removida. O sistema operacional chama essa rotina sempre que um novo processo é criado.
[in] Remove
Um valor booliano que especifica se PsSetCreateProcessNotifyRoutineEx adicionará ou removerá uma rotina especificada da lista de rotinas de retorno de chamada. Se esse parâmetro for VERDADEIRO, a rotina especificada será removida da lista de rotinas de retorno de chamada. Se esse parâmetro for FALSE, a rotina especificada será adicionada à lista de rotinas de retorno de chamada. Se Remover for verdadeiro, o sistema também aguardará que todas as rotinas de retorno de chamada em voo sejam concluídas antes de retornar.
Valor de retorno
PsSetCreateProcessNotifyRoutineEx retorna um dos seguintes valores NTSTATUS:
Código de retorno | Descrição |
---|---|
|
A rotina especificada agora está registrada no sistema operacional. O sistema operacional chama essa rotina sempre que um novo processo é criado. |
|
A rotina especificada já foi registrada ou o sistema operacional atingiu seu limite para registrar rotinas de retorno de chamada de criação de processo. |
|
A imagem que contém o ponteiro de rotina de retorno de chamada não tinha IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY definido em seu cabeçalho de imagem. |
Observações
Os drivers de nível mais alto podem chamar PsSetCreateProcessNotifyRoutineEx para registrar uma rotina de PCREATE_PROCESS_NOTIFY_ROUTINE_EX. Um IFS (sistema de arquivos) instalável ou um driver de criação de perfil de sistema de nível mais alto pode registrar uma rotina de retorno de chamada de criação de processo para acompanhar quais processos são criados e excluídos em relação ao estado interno do driver em todo o sistema.
Um driver deve remover todas as rotinas de retorno de chamada que ele registra antes de descarregar. Você pode remover a rotina de retorno de chamada chamando PsSetCreateProcessNotifyRoutineEx com Remover definido como VERDADEIRO. Um driver não deve fazer essa chamada de sua implementação da rotina de retorno de chamada PCREATE_PROCESS_NOTIFY_ROUTINE_EX.
O sistema operacional chama a rotina de notificação de processo do driver em PASSIVE_LEVEL dentro de uma região crítica com APCs de kernel normais desabilitadas. Quando um processo é criado, a rotina de notificação de processo é executada no contexto do thread que criou o novo processo. Quando um processo é excluído, a rotina de notificação de processo é executada no contexto do último thread para sair do processo.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows Vista com SP1 e Windows Server 2008. |
da Plataforma de Destino | Universal |
cabeçalho | ntddk.h (inclua Ntddk.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |