Indicateurs de création de processus
Les indicateurs de création de processus suivants sont utilisés par les fonctions CreateProcess, CreateProcessAsUser, CreateProcessWithLogonWet CreateProcessWithTokenW . Ils peuvent être spécifiés dans n’importe quelle combinaison, sauf indication contraire.
Exemple
BOOL creationResult;
creationResult = CreateProcess(
NULL, // No module name (use command line)
cmdLine, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP, // creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&startupInfo, // Pointer to STARTUPINFO structure
&processInformation); // Pointer to PROCESS_INFORMATION structure
exemple de Windows exemples classiques sur GitHub.
Indicateurs
| Constante/valeur | Description |
|---|---|
|
Les processus enfants d’un processus associé à un travail ne sont pas associés à ce travail. Si le processus appelant n’est pas associé à un travail, cette constante n’a aucun effet. Si le processus appelant est associé à un travail, le travail doit définir la limite de _ _ _ dissociation _ de limite d’objets de tâche . |
|
Le nouveau processus n’hérite pas du mode d’erreur du processus appelant. Au lieu de cela, le nouveau processus obtient le mode d’erreur par défaut. Cette fonctionnalité est particulièrement utile pour les applications Shell multithread qui s’exécutent avec des erreurs matérielles désactivées. Le comportement par défaut est que le nouveau processus hérite du mode d’erreur de l’appelant. La définition de cet indicateur modifie ce comportement par défaut. |
|
Le nouveau processus a une nouvelle console, au lieu d’hériter de la console de son parent (valeur par défaut). Pour plus d’informations, consultez création d’une console. Cet indicateur ne peut pas être utilisé avec un _ processus détaché. |
|
Le nouveau processus est le processus racine d’un nouveau groupe de processus. Le groupe de processus comprend tous les processus qui sont des descendants de ce processus racine. L’identificateur de processus du nouveau groupe de processus est identique à l’identificateur de processus, qui est retourné dans le paramètre lpProcessInformation . Les groupes de processus sont utilisés par la fonction GenerateConsoleCtrlEvent pour permettre l’envoi d’un signal CTRL + ATTN à un groupe de processus de console. Si cet indicateur est spécifié, les signaux CTRL + C sont désactivés pour tous les processus au sein du nouveau groupe de processus. Cet indicateur est ignoré s’il est spécifié avec Create _ New _ console. |
|
Le processus est une application console en cours d’exécution sans fenêtre de console. Par conséquent, le handle de la console de l’application n’est pas défini. Cet indicateur est ignoré si l’application n’est pas une application console ou si elle est utilisée avec l’option créer une _ nouvelle _ console ou détacher le _ processus. |
|
Le processus doit être exécuté en tant que processus protégé. Le système restreint l’accès aux processus protégés et aux threads de processus protégés. Pour plus d’informations sur la façon dont les processus peuvent interagir avec les processus protégés, consultez sécurité des processus et droits d’accès. Pour activer un processus protégé, le binaire doit avoir une signature spéciale. Cette signature est fournie par Microsoft, mais pas actuellement disponible pour les fichiers binaires non Microsoft. il existe actuellement quatre processus protégés : media foundation, le moteur audio, le Windows le rapport d’erreurs et le système. Les composants qui chargent ces fichiers binaires doivent également être signés. Les entreprises multimédias peuvent tirer parti des deux premiers processus protégés. Pour plus d’informations, consultez vue d’ensemble du chemin d’accès au média protégé. Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Permet à l’appelant d’exécuter un processus enfant qui ignore les restrictions de processus qui seraient normalement appliquées automatiquement au processus. |
|
Cet indicateur permet de lancer des processus sécurisés qui s’exécutent dans l’environnement de sécurité Virtualization-Based. |
|
cet indicateur est valide uniquement lors du démarrage d’une application de type Windows 16 bits. Si cette valeur est définie, le nouveau processus s’exécute sur une machine virtuelle DOS privée (VDM). par défaut, toutes les applications de type Windows 16 bits s’exécutent en tant que threads dans un VDM partagé unique. L’avantage de s’exécuter séparément est qu’un incident ne met fin qu’à un seul VDM ; tous les autres programmes en cours d’exécution dans des VDM distincts continuent de fonctionner normalement. en outre, les applications 16 bits Windows qui sont exécutées dans des vdm distincts ont des files d’attente d’entrée distinctes. Cela signifie que si une application cesse de répondre momentanément, les applications dans des VDM distincts continuent de recevoir l’entrée. L’inconvénient de l’exécution séparée est qu’il faut beaucoup plus de mémoire pour le faire. Utilisez cet indicateur uniquement si l’utilisateur demande que les applications 16 bits s’exécutent dans leur propre VDM. |
|
l’indicateur n’est valide que lors du démarrage d’une application à base de Windows 16 bits. si le commutateur DefaultSeparateVDM dans la section Windows de WIN.INI a la valeur TRUE, cet indicateur remplace le commutateur. Le nouveau processus est exécuté dans la machine DOS virtuelle partagée. |
|
Le thread principal du nouveau processus est créé dans un état suspendu et ne s’exécute pas tant que la fonction ResumeThread n’est pas appelée. |
|
Si cet indicateur est défini, le bloc d’environnement pointé par lpEnvironment utilise des caractères Unicode. Dans le cas contraire, le bloc environnement utilise des caractères ANSI. |
|
Le thread appelant démarre et débogue le nouveau processus. Il peut recevoir tous les événements de débogage associés à l’aide de la fonction WaitForDebugEvent . |
|
Le thread appelant démarre et débogue le nouveau processus et tous les processus enfants créés par le nouveau processus. Il peut recevoir tous les événements de débogage associés à l’aide de la fonction WaitForDebugEvent . Un processus qui utilise le _ processus de débogage devient la racine d’une chaîne de débogage. Cela se poursuit jusqu’à ce qu’un autre processus de la chaîne soit créé avec le _ processus de débogage. Si cet indicateur est combiné avec le débogage _ uniquement _ ce _ processus, l’appelant ne débogue que le nouveau processus, pas les processus enfants. |
|
Pour les processus de console, le nouveau processus n’hérite pas de la console de son parent (valeur par défaut). Le nouveau processus peut appeler la fonction AllocConsole à un moment ultérieur pour créer une console. Pour plus d’informations, consultez création d’une console. Cette valeur ne peut pas être utilisée avec Create _ New _ console. |
|
Le processus est créé avec des informations de démarrage étendues. le paramètre lpStartupInfo spécifie une structure STARTUPINFOEX . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le processus hérite de l’affinité de son parent. Si le processus parent possède des threads dans plusieurs groupes de processeurs, le nouveau processus hérite de l’affinité relative au groupe d’un groupe arbitraire utilisé par le parent. Windows server 2008, Windows Vista, Windows server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
Notes
sur les Windowss 32 bits, les applications 16 bits sont simulées par ntvdm.exe, et ne sont pas exécutées en tant que processus individuels. Par conséquent, les indicateurs de création de processus s’appliquent à ntvdm.exe. Étant donné que ntvdm.exe persiste après l’exécution de la première application 16 bits, lorsque vous lancez une autre application 16 bits, les nouveaux indicateurs de création ne sont pas appliqués, à l’exception de la création d’une _ nouvelle _ console et de la création d’un _ _ _ VDM WOW distinct qui crée une ntvdm.exe.
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows [Applications de bureau XP uniquement] |
| Serveur minimal pris en charge |
Windows Serveur 2003 [ applications de bureau uniquement] |
| En-tête |
|