Compartilhar via


Função PsSetCreateProcessNotifyRoutineEx (ntddk.h)

A rotina PsSetCreateProcessNotifyRoutineEx registra ou remove uma rotina de retorno de chamada que notifica o chamador quando um processo é criado ou encerrado.

Sintaxe

NTSTATUS PsSetCreateProcessNotifyRoutineEx(
  [in] PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
  [in] BOOLEAN                           Remove
);

Parâmetros

[in] NotifyRoutine

Um ponteiro para a rotina de 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 TRUE, 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 Remove for TRUE, o sistema também aguardará a conclusão de todas as rotinas de retorno de chamada em andamento antes de retornar.

Retornar valor

PsSetCreateProcessNotifyRoutineEx retorna um dos seguintes valores NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS
A rotina especificada agora está registrada no sistema operacional. O sistema operacional chama essa rotina sempre que um novo processo é criado.
STATUS_INVALID_PARAMETER
A rotina especificada já estava registrada ou o sistema operacional atingiu seu limite para registrar rotinas de retorno de chamada de criação de processo.
STATUS_ACCESS_DENIED
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.

Comentários

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 Remove definido como TRUE. 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
Cliente mínimo com suporte Disponível a partir do Windows Vista com SP1 e Windows Server 2008.
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Ntddk.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira também

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine