Partager via


Surveillance de la sortie du processus silencieux

À compter de Windows 7, vous pouvez utiliser l’onglet Sortie du processus silencieux dans GFlags pour entrer le nom d’un processus que vous souhaitez surveiller pour la sortie silencieuse.

Dans le contexte de cette fonctionnalité de surveillance, nous utilisons le terme sortie silencieuse pour signifier que le processus supervisé se termine de l’une des manières suivantes.

Arrêt automatique

Le processus surveillé se termine lui-même en appelant ExitProcess.

Arrêt inter-processus

Un deuxième processus met fin au processus analysé en appelant TerminateProcess.

La fonctionnalité de surveillance ne détecte pas l’arrêt normal du processus qui se produit lorsque le dernier thread du processus se ferme. La fonctionnalité de surveillance ne détecte pas l’arrêt du processus lancé par le code en mode noyau.

Pour inscrire un processus pour la surveillance de la sortie silencieuse, ouvrez l’onglet Sortie du processus silencieux dans GFlags. Entrez le nom du processus comme Image , puis appuyez sur tabulation . Cochez la case Activer la surveillance de la sortie du processus silencieux , puis sélectionnez Appliquer. Cela définit l’indicateur FLG_MONITOR_SILENT_PROCESS_EXIT dans l’entrée de Registre suivante.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ProcessName\GlobalFlag

Pour plus d’informations sur cet indicateur, consultez Activer la surveillance de la sortie de processus en mode silencieux.

Pour plus d’informations sur l’utilisation de l’onglet Sortie de processus silencieux dans GFlags, consultez Configuration de la surveillance de la sortie de processus silencieux.

Sous l’onglet Sortie du processus silencieux de GFlags, vous pouvez configurer les actions qui se produisent lorsqu’un processus surveillé se ferme en mode silencieux. Vous pouvez configurer la notification, la journalisation des événements et la création de fichiers de vidage. Vous pouvez spécifier un processus qui sera lancé lorsque la sortie en mode silencieux est détectée, et vous pouvez spécifier une liste de modules que le moniteur ignorera. Plusieurs de ces paramètres sont disponibles à la fois globalement et pour des applications individuelles. Les paramètres globaux s’appliquent à tous les processus que vous inscrivez pour la surveillance de la sortie silencieuse. Les paramètres d’application s’appliquent à un processus individuel et remplacent les paramètres globaux.

Les paramètres globaux sont stockés dans le Registre sous la clé suivante.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit

Les paramètres d’application sont stockés dans le Registre sous la clé suivante.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\ProcessName

Mode de création de rapports

Le paramètre Mode de création de rapports est disponible en tant que paramètre d’application, mais pas en tant que paramètre global. Vous pouvez utiliser les zones de case activée suivantes pour définir le mode de création de rapports.

Lancer le processus d’analyseActiver la collecte de vidageActiver la notification L’entrée de Registre ReportingMode est au niveau du bit OU des indicateurs suivants.

Indicateur Valeur Signification
LAUNCH_MONITORPROCESS 0x1 Lorsque la sortie silencieuse est détectée, le processus de surveillance (spécifié dans la zone Processus de surveillance) est lancé.
LOCAL_DUMP 0x2 Quand une sortie silencieuse est détectée, un fichier de vidage est créé pour le processus surveillé. En cas d’arrêt inter-processus, un fichier de vidage est également créé pour le processus qui a provoqué l’arrêt.
NOTIFICATION 0x4 Lorsque la sortie silencieuse est détectée, une notification contextuelle s’affiche.

Ignorer les sorties automatique

Le paramètre Ignorer les sorties autonomes est disponible en tant que paramètre d’application, mais pas en tant que paramètre global. Vous pouvez utiliser la zone Ignorer les sorties autonomes case activée pour spécifier si les sorties autonomes sont ignorées.

L’entrée de Registre IgnoreSelfExits a l’une des valeurs suivantes.

Valeur Signification
0x0 Détectez et répondez à la fois à l’arrêt automatique et à l’arrêt interprocesseur.
0x1 Ignorer l’arrêt automatique. Détecter et répondre à l’arrêt interprocesseur.

Superviser le processus

Vous pouvez spécifier un processus d’analyse en entrant un nom de processus, ainsi que des paramètres de ligne de commande, dans la zone de texte Superviser le processus . Vous pouvez utiliser les variables suivantes dans votre ligne de commande.

Varaible Signification
%e ID du processus de sortie. Il s’agit du processus supervisé qui s’est arrêté en mode silencieux.
%i ID du processus de lancement. Dans le cas de l’arrêt automatique, il s’agit du processus de sortie. En cas d’arrêt inter-processus, il s’agit de l’ID du processus à l’origine de l’arrêt.
%t ID du thread de lancement. Il s’agit du thread qui a provoqué l’arrêt.
%c Le code status passé à ExitThread ou TerminateThread .

Par exemple, la valeur suivante pour Monitor Process spécifie qu’en sortie silencieuse, WinDbg est lancé et attaché au processus de sortie.

windbg -p %e

La ligne de commande Monitor Process est stockée dans l’entrée de Registre MonitorProcess .

Emplacement du dossier de vidage

Vous pouvez utiliser la zone de texte Emplacement du dossier de vidage pour spécifier un emplacement pour les fichiers de vidage qui sont écrits lorsqu’une sortie silencieuse est détectée.

La chaîne que vous entrez pour l’emplacement du dossier de vidage est stockée dans l’entrée de Registre LocalDumpFolder .

Si vous ne spécifiez pas d’emplacement de dossier de vidage, les fichiers de vidage sont écrits à l’emplacement par défaut, qui est %TEMP%\Silent Process Exit.

Taille du dossier de vidage

Vous pouvez utiliser la zone de texte Taille du dossier de vidage pour spécifier le nombre maximal de fichiers de vidage pouvant être écrits dans le dossier de vidage. Entrez cette valeur sous forme d’entier décimal.

La valeur que vous entrez pour Taille du dossier dump est stockée dans l’entrée de Registre MaxNumberOfDumpFiles .

Par défaut, il existe une limite de dix fichiers de vidage pouvant être écrits.

Type de vidage

Vous pouvez utiliser la liste déroulante Type de vidage pour spécifier le type de fichier de vidage (Micro, Mini, Tas ou Personnalisé) qui est écrit lorsqu’une sortie silencieuse est détectée.

Le type de vidage est stocké dans l’entrée de Registre DumpType , qui est au niveau du bit OR des membres de l’énumération MINIDUMP_TYPE . Cette énumération est définie dans dbghelp.h, qui est inclus dans le package Outils de débogage pour Windows.

Par exemple, supposons que vous avez choisi un type de vidage Micro et que vous voyez que l’entrée de Registre DumpType a une valeur de 0x88. La valeur 0x88 est un or au niveau du bit des deux valeurs d’énumération MINIDUMP_TYPE suivantes.

MiniDumpFilterModulePaths : 0x00000080

MiniDumpFilterMemory : 0x00000008

Si vous choisissez un type de vidage Personnalisé, entrez votre propre type de bits OR de MINIDUMP_TYPE valeurs d’énumération dans la zone Type de vidage personnalisé . Entrez cette valeur sous forme d’entier décimal.

Liste d’ignorer les modules

Vous pouvez utiliser la zone Liste des modules ignorés pour spécifier une liste de modules qui seront ignorés lorsqu’une sortie sans assistance est détectée. Si le processus surveillé est arrêté par l’un des modules de cette liste, la sortie silencieuse est ignorée.

La liste des modules que vous entrez dans la zone Liste des modules ignorés est stockée dans l’entrée de Registre ModuleIgnoreList .

Lecture des rapports de sortie de processus dans observateur d'événements

Lorsqu’un processus surveillé se ferme en mode silencieux, le moniteur crée une entrée dans observateur d'événements. Pour ouvrir observateur d'événements, entrez la commande eventvwr.msc. Accédez à Application journaux > Windows. Recherchez les entrées de journal qui ont une source de Moniteur de sortie de processus.

Boîte de dialogue Propriétés d’événement avec l’onglet Général, affichant la source en tant que Moniteur de sortie de processus.