Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

User32.dll ou Kernel32.dll n'initialise pas

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 184802
Symptômes
Une application qui est exécutée par CreateProcess ou CreateProcessAsUser peut échouer, et que vous receviez le message d'erreur suivant :
Initialisation de la bibliothèque dynamique <system>\system32\user32.dll a échoué. Le processus de fin d'exécution anormale. </system>
Initialisation de la bibliothèque dynamique <system>\system32\kernel32.dll a échoué. Le processus de fin d'exécution anormale. </system>

En outre, le processus a échoué renvoie le code de sortie 128 ou le message d'erreur suivant :
ERROR_WAIT_NO_CHILDREN
Cause
Cet échec se produit pour l'une des raisons suivantes :
  • Le processus exécuté n'a pas d'accès de sécurité correct pour la station et le bureau qui sont associés à la procédure.
  • Le système a manqué de segments de bureau.
Plus d'informations

Cause 1

Le processus exécuté n'a pas d'accès de sécurité correct pour la station et le bureau qui sont associés à la procédure.

Le membre lpDesktop de la structure STARTUPINFO qui est transmis à CreateProcess ou CreateProcessAsUser spécifie la station et le bureau qui sont associés à la procédure exécutée. Le processus exécuté doit avoir accès de sécurité correct pour le bureau et la station de la fenêtre spécifiée.

Pour plus d'informations sur la façon de résoudre les problèmes de sécurité avec les ordinateurs de bureau et des stations window, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
165194 Ordinateurs de bureau et stations CreateProcessAsUser()

Cause 2

Le système a manqué de segments de bureau.

Chaque objet de bureau sur le système dispose d'un segment de bureau qui lui est associé. L'objet bureau utilise le segment de mémoire pour stocker les menus, les crochets, les chaînes et windows. Dans Windows Server 2003 et Windows XP 32 bits, le système alloue du noyau de bureau à partir d'une mémoire tampon de système 48 mégaoctets (Mo). En plus de segments de bureau, les pilotes d'imprimante et les pilotes de police également utilisent cette mémoire tampon.

Postes de travail sont associés à des stations window. Une station Windows peut contenir zéro, un ou plusieurs postes de travail. Vous pouvez modifier la taille du tas du bureau qui est allouée pour un ordinateur de bureau qui est associée à une station de travail en modifiant la valeur de Registre suivante.

Remarque Nous vous déconseillons d'utiliser lecommutateur/3 GB . Le commutateur/3 GB est spécifié dans le fichier Boot.ini. Le commutateur/3 GB est pris en charge uniquement pour les systèmes d'exploitation 32 bits.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
Dans Windows Server 2003 et Windows XP 32 bits, les données par défaut pour cette valeur de Registre semblable à la suivante (sur une seule ligne) :
   %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows   SharedSection=1024,3072,512 Windows=On SubSystemType=Windows   ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3   ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off   MaxRequestThreads=16				

Dans les différentes versions de Windows, les données par défaut pour cette valeur de Registre aura l'aspect suivant :

Pour Windows Vista RTM (32 bits)
SharedSection=1024,3072,512

Pour Windows Vista SP1, Windows 7, Windows 8, Windows 8.1 (32 bits) et Windows Server 2008 (32 bits)
SharedSection=1024,12288,512

Pour Windows Vista, Windows 7, Windows 8, Windows 8.1 (64 bits), Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 et Windows Server 2012 R2 (64 bits)
SharedSection=1024,20480,768

Les valeurs numériques qui suit « SharedSection = "contrôler comment le segment de bureau est attribué. Ces valeurs SharedSection sont spécifiées en kilo-octets. Il y a des paramètres différents pour les postes de travail qui sont associés à des stations de fenêtre interactif et non interactif.

Remarque Si vous modifiez les valeurs SharedSection dans le Registre, vous devez redémarrer le système pour que les modifications soient prises en compte.

Important Cette section, méthode ou tâche contient des étapes vous indiquant comment modifier le Registre. Toutefois, des problèmes graves peuvent survenir si vous modifiez le Registre de façon incorrecte. Par conséquent, veillez à suivre ces étapes scrupuleusement. Pour une meilleure protection, sauvegardez le Registre avant de le modifier. Vous pourriez alors restaurer le Registre si un problème survient. Pour plus d'informations sur la façon de sauvegarder et de restaurer le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
322756 Comment faire pour sauvegarder et restaurer le Registre dans Windows

La première valeur SharedSection(1024) est la taille de segment de mémoire partagée commune à tous les bureaux. Cela inclut la table de descripteurs globale. Cette table conserve des handles vers windows, les menus, les icônes, les curseurs, etc. et les paramètres système partagés. Il est peu probable que vous ayez jamais à modifier cette valeur.

La deuxième valeur SharedSectionest la taille du segment de chaque bureau associée à la "interactif" station de travail WinSta0. Des objets utilisateur, telles que des crochets, des menus, des chaînes et windows consomment de la mémoire dans ce segment de bureau. Il est peu probable que vous ayez jamais à modifier cette valeur.

Chaque poste de travail est créé dans la station Windows interactive utilise le segment de bureau par défaut de 3 072 Ko. Par défaut, le système crée les trois ordinateurs de bureau dans Winsta0 :
  • Winlogon
  • Par défaut
    Le bureau d'application « Par défaut » sera utilisé par tous les theprocesses pour lesquels les « Winsta0\default » est spécifié dans le membre de la structure STARTUPINFO.lpDesktop . Lorsque le membre de la structure lpDesktop est NULL, la station et le bureau sont héritées du processus parent. Tous les services qui sont exécutés sous le compte LocalSystem avec l'optionAutoriser le Service à interagir avec le bureaude démarrage sélectionnée utilise « Winsta0\Default ». Tous ces processus partagent le segment de bureau est associé avec le bureau d'application « Par défaut ».
  • Écran de veille
    Le bureau d'économiseur d'écran est créé dans la station Windows interactive (WinSta0) lorsqu'un écran de veille s'affiche.
La troisième valeur SharedSection est la taille du segment de chaque bureau associée à une station Windows non « interactif ». Si cette valeur n'est pas présente, la taille du segment de bureau pour les stations de fenêtre non interactives sera identique à celle qui est spécifiée pour les stations de fenêtre interactive (en d'autres termes, la deuxième valeur SharedSection ).

Si seulement deux valeurs SharedSectionsont présents, vous pouvez ajouter une troisième valeur pour spécifier la taille du segment de bureau pour les postes de travail créés dans stations non interactif.

Chaque processus de service qui est exécuté sous un compte d'utilisateur reçoit un nouveau poste de travail dans une station de fenêtre non interactif est créée par le Gestionnaire de contrôle des services (SCM). Par conséquent, chaque service est exécuté sous un compte d'utilisateur utilisent le nombre de kilo-octets de segments de bureau qui est spécifié dans la troisième valeurSharedSection . Tous les services qui sont exécutés sous le compte LocalSystem lorsque Autoriser le Service à interagir avec le bureaun'est pas sélectionné partage le segment de bureau du bureau « Par défaut » dans la station windows de service non interactif (0 x 0-Service-3e7$).

Le segment de bureau total qui est utilisé dans les stations interactives et doit tenir dans la mémoire tampon.

Diminution de la valeur SharedSection deuxième ou troisième augmentera le nombre de postes de travail qui peuvent être créés dans les stations correspondantes. Des valeurs inférieures de limite le nombre de raccordements, des menus, des chaînes et windows qui peuvent être créés dans un ordinateur de bureau. D'autre part, l'augmentation de la valeur SharedSectiondeuxième ou troisième diminue le nombre de postes de travail qui peuvent être créés. Toutefois, ceci augmentera le nombre de raccordements, menus, chaînes et windows qui peuvent être créés dans un ordinateur de bureau.

Étant donné que le SCM crée un nouveau poste de travail dans la station de travail non interactif pour chaque processus de service qui s'exécute sous un compte d'utilisateur, une troisième valeurSharedSectionsupérieure réduit le nombre de services de compte d'utilisateur qui peuvent s'exécuter sur le système. La valeur minimale qui peut être spécifiée pour la valeurSharedSectiondeuxième ou troisième est de 128. Toute tentative d'utilisation d'un willinstead de valeur inférieure utiliser 128.

Segment de bureau est allouée par User32.dll lorsqu'un processus a besoin d'objets utilisateur. Si une application n'est pas dépendante de User32.dll, il ne consomme pas de segments de bureau.

Remarque Dans Windows Server 2003, l'événement spécifique est consigné dans le journal système lorsqu'une des conditions suivantes est vraie :
  • Si le segment de bureau est plein, l'événement suivant est enregistré :

    Type d'événement : avertissement
    Source de l'événement : Win32k
    Catégorie de l'événement : aucun
    L'ID d'événement : 243
    Date : Date
    Heure : Heure
    Utilisateur : n/a
    Ordinateur : Nom du serveur
    Description : Une allocation de segment du bureau a échoué.

    Dans ce cas, augmentez la taille de segment de bureau.
  • Si le segment de bureau total devient la taille de la mémoire tampon au niveau du système, l'événement suivant est enregistré :

    Type d'événement : avertissement
    Source de l'événement : Win32k
    Catégorie de l'événement : aucun
    L'ID d'événement : 244
    Date : Date
    Heure : Heure
    Utilisateur : n/a
    Ordinateur : Nom du serveur
    Description : Impossible de créer un bureau car plus de segments de bureau.

    Dans ce cas, réduire la taille de segment de bureau.
Dans Windows Server 2003, une mémoire tampon au niveau du système est de 20 Mo lorsqu'une des conditions suivantes est vraie :
  • Vous êtes dans un environnement de Services Terminal Server.
  • Le commutateur/3 GB est spécifié dans le fichier Boot.ini.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 184802 - Dernière mise à jour : 06/12/2015 17:26:00 - Révision : 1.0

Microsoft Win32 Application Programming Interface

  • kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtfr
Commentaires