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 |
---|---|
|
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á estava 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. |
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) |