Funzione PsSetCreateProcessNotifyRoutineEx (ntddk.h)

La routine PsSetCreateProcessNotifyRoutineEx registra o rimuove una routine di callback che notifica al chiamante quando viene creato o chiuso un processo.

Sintassi

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

Parametri

[in] NotifyRoutine

Puntatore alla routine PCREATE_PROCESS_NOTIFY_ROUTINE_EX da registrare o rimuovere. Il sistema operativo chiama questa routine ogni volta che viene creato un nuovo processo.

[in] Remove

Valore booleano che specifica se PsSetCreateProcessNotifyRoutineEx aggiunge o rimuove una routine specificata dall'elenco di routine di callback. Se questo parametro è TRUE, la routine specificata viene rimossa dall'elenco delle routine di callback. Se questo parametro è FALSE, la routine specificata viene aggiunta all'elenco di routine di callback. Se Remove è TRUE, il sistema attende anche il completamento di tutte le routine di callback in corso prima della restituzione.

Valore restituito

PsSetCreateProcessNotifyRoutineEx restituisce uno dei valori NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
La routine specificata è ora registrata con il sistema operativo. Il sistema operativo chiama questa routine ogni volta che viene creato un nuovo processo.
STATUS_INVALID_PARAMETER
La routine specificata è già stata registrata oppure il sistema operativo ha raggiunto il limite per la registrazione delle routine di callback di creazione del processo.
STATUS_ACCESS_DENIED
L'immagine che contiene il puntatore alla routine di callback non ha IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY impostato nell'intestazione dell'immagine.

Commenti

I driver di livello più alto possono chiamare PsSetCreateProcessNotifyRoutineEx per registrare una routine PCREATE_PROCESS_NOTIFY_ROUTINE_EX . Un driver di profilatura di sistema (IFS) installabile o di livello più alto potrebbe registrare una routine di callback di creazione del processo per tenere traccia dei processi creati ed eliminati rispetto allo stato interno del driver nel sistema.

Un driver deve rimuovere tutte le routine di callback registrate prima dello scaricamento. È possibile rimuovere la routine di callback chiamando PsSetCreateProcessNotifyRoutineEx con Remove impostato su TRUE. Un driver non deve effettuare questa chiamata dall'implementazione della routine di callback PCREATE_PROCESS_NOTIFY_ROUTINE_EX.

Il sistema operativo chiama la routine di notifica del processo del driver in PASSIVE_LEVEL all'interno di un'area critica con normali ACS del kernel disabilitati. Quando viene creato un processo, la routine process-notify viene eseguita nel contesto del thread che ha creato il nuovo processo. Quando un processo viene eliminato, la routine process-notify viene eseguita nel contesto dell'ultimo thread da uscire dal processo.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows Vista con SP1 e Windows Server 2008.
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine