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
Créer _ DISSOCIation _ d’un _ travail
0x01000000
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 .
Créer _ _ _ Mode d’erreur par défaut
0x04000000
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.
Créer _ NOUVELLE _ console
0x00000010
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é.
Créer _ Nouveau _ _ groupe de processus
0x00000200
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.
Créer _ AUCUNE _ fenêtre
0x08000000
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.
Créer _ 0x00040000 du _ processus protégé
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.
Créer _ PRÉSERVER _ le _ _ niveau
d’autorisation de code
0x02000000
Permet à l’appelant d’exécuter un processus enfant qui ignore les restrictions de processus qui seraient normalement appliquées automatiquement au processus.
Créer _ 0x00400000 de _ processus sécurisé
Cet indicateur permet de lancer des processus sécurisés qui s’exécutent dans l’environnement de sécurité Virtualization-Based.
Créer _ SÉPARER les 0x00000800 _ _ VDM WOW
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.
Créer _ 0x00001000 _ _ VDM Shared wow
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.
Créer _ SUSPENDU
0x00000004
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.
Créer _ _
0x00000400
de l’environnement Unicode
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.
Débogage _ UNIQUEMENT _ ce _ processus
0x00000002
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 .
Débogage _ PROCESSUS
0x00000001
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.
Détaché _ TRAITER
0x00000008
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.
Étendu _ STARTUPINFO _ présent
0x00080000
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.
Hériter _ _Affinité parent
0x00010000
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
WinBase. h (inclure Windows. h)