Condividi tramite


Funzione PsSetCreateProcessNotifyRoutineEx (ntddk.h)

Il PsSetCreateProcessNotifyRoutineEx routine 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 delle 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 viene 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 di routine di callback non ha IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY impostato nell'intestazione dell'immagine.

Osservazioni

I driver di livello più elevato possono chiamare PsSetCreateProcessNotifyRoutineEx per registrare una routine PCREATE_PROCESS_NOTIFY_ROUTINE_EX. Un driver di profilatura del sistema installato (IFS) o di livello più elevato potrebbe registrare una routine di callback di creazione del processo per tenere traccia dei processi creati ed eliminati sullo 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 API del kernel disabilitate. Quando viene creato un processo, la routine di notifica del processo viene eseguita nel contesto del thread che ha creato il nuovo processo. Quando un processo viene eliminato, la routine di notifica del processo viene eseguita nel contesto dell'ultimo thread da uscire dal processo.

Fabbisogno

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)

Vedere anche

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine