Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, CreateProcess
veya CreateProcessAsUser
tarafından yürütülen bir uygulamanın başarısız olabileceği bir durum açıklanmaktadır.
Şunlar için geçerlidir: Microsoft Windows
Özgün KB numarası: 184802
Belirti -leri
Bir uygulama CreateProcess
veya CreateProcessAsUser
tarafından çalıştırıldığında başarısız olabilir ve aşağıdaki hata iletilerinden birini alabilirsiniz:
Dinamik kitaplık <sistemi>\system32\user32.dll başlatılamadı. İşlem anormal şekilde sonlandırılıyor. Dinamik kitaplık <sistemi>\system32\kernel32.dll başlatılamadı. İşlem anormal şekilde sonlandırılıyor.
Ayrıca başarısız olan işlem 128 veya aşağıdaki çıkış kodunu döndürür:
error:ERROR_WAIT_NO_CHILDREN (Çocuk süreç beklenmiyor)
Nedeni
Bu hata aşağıdaki nedenlerden biri nedeniyle oluşur:
Yürütülen işlem, işlemle ilişkili pencere istasyonuna ve masaüstüne doğru güvenlik erişimine sahip değil.
Sistemin masaüstü yığını tükendi.
Daha fazla bilgi
1. Neden
Yürütülen işlem, işlemle ilişkili pencere istasyonuna ve masaüstüne doğru güvenlik erişimine sahip değil.
STARTUPINFO yapısının
CreateProcess
veyaCreateProcessAsUser
parametrelerine aktarılan lpDesktop üyesi, yürütülen işlemle ilişkili pencere istasyonu ve masaüstünü belirtir. Yürütülen işlemin belirtilen pencere istasyonuna ve masaüstüne doğru güvenlik erişimi olmalıdır.Sebep 2
Sistemin masaüstü yığını tükendi.
Sistemdeki her masaüstü nesnesinin kendisiyle ilişkilendirilmiş bir masaüstü yığını vardır. Masaüstü nesnesi menüleri, kancaları, dizeleri ve pencereleri depolamak için yığını kullanır. Windows Server 2003 ve Windows XP 32-bit'te sistem, sistem genelinde 48 megabayt (MB) bellek tamponundan masaüstü yığını ayırır. Masaüstü yığınlarına ek olarak, yazıcı sürücüleri ve yazı tipi sürücüleri de bu arabelleği kullanır.
Masaüstleri pencere istasyonlarıyla ilişkilendirilir. Bir pencere istasyonu sıfır veya daha fazla masaüstü içerebilir. Aşağıdaki kayıt defteri değerini değiştirerek, pencere istasyonuyla ilişkili bir masaüstü için ayrılan masaüstü yığınının boyutunu değiştirebilirsiniz.
Uyarı
/3GB anahtarını kullanmanızı tavsiye etmiyoruz. /3GB anahtarı Boot.ini dosyasında belirtilir. /3 GB anahtarı yalnızca 32 bit işletim sistemleri için desteklenir.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
Windows Server 2003 ve Windows XP 32 bit'te, bu kayıt defteri değeri için varsayılan veriler aşağıdakine benzer (tümü tek satırda):
%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
Windows'un farklı sürümlerinde, bu kayıt defteri değeri için varsayılan veriler aşağıdakine benzer olacaktır:
Windows Vista RTM için (32 bit)
SharedSection=1024,3072,512
Windows Vista SP1, Windows 7, Windows 8, Windows 8.1 (32 bit) ve Windows Server 2008 (32 bit) için
SharedSection=1024,12288,512
Windows Vista, Windows 7, Windows 8, Windows 8.1 (64 bit), Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 ve Windows Server 2012 R2 (64 bit) için
SharedSection=1024,20480,768
Aşağıdaki SharedSection=
sayısal değerler, masaüstü yığınının nasıl ayrılacağını denetler. Bu SharedSection
değerler kilobayt cinsinden belirtilir. Etkileşimli ve etkileşimsiz pencere istasyonlarıyla ilişkili masaüstleri için ayrı ayarlar vardır.
Uyarı
Kayıt defterindeki SharedSection
değerleri değiştirirseniz değişikliklerin etkili olması için sistemi yeniden başlatmanız gerekir.
Önemli
Bu bölüm, yöntem veya görev, kayıt defterini nasıl değiştirebileceğinizi gösteren adımlar içerir. Ancak, kayıt defterini yanlış bir şekilde değiştirirseniz ciddi sorunlar ortaya çıkabilir. Bu nedenle, bu adımları dikkatli bir şekilde izlediğinizden emin olun. Daha fazla koruma için, değiştirmeden önce kayıt defterini yedekleyin. Ardından, bir sorun oluşursa kayıt defterini geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için bkz. Windows'ta kayıt defterini yedekleme ve geri yükleme.
İlk SharedSection
değer (1024), tüm masaüstlerinde ortak olan paylaşılan yığın boyutudur. Bu, genel tanıtıcı tablosunu içerir. Bu tabloda pencereler, menüler, simgeler, imleçler vb. için kollar ve sistem tarafından paylaşılan ayarlar bulunur. Bu değeri değiştirmeniz pek olası değildir.
İkinci SharedSection
değer, etkileşimli pencere istasyonu WinSta0 ile ilişkili her masaüstü için masaüstü yığınının boyutudur. Kancalar, menüler, dizeler ve pencereler gibi kullanıcı nesneleri bu masaüstü yığınında bellek tüketir. Bu değeri değiştirmeniz pek olası değildir.
Etkileşimli pencere istasyonunda oluşturulan her masaüstü, varsayılan 3.072 KB masaüstü yığınını kullanır. Varsayılan olarak, sistem Winsta0'da aşağıdaki üç masaüstünü oluşturur:
Winlogon
Varsayılan
Varsayılan uygulama masaüstü, STARTUPINFO.lpDesktop yapısı üyesinde belirtilen tüm işlemler
Winsta0\default
tarafından kullanılır. lpDesktop yapısı üyesi NULL olduğunda, pencere istasyonu ve masaüstü üst işlemden devralınır. Hizmetin Masaüstü ile Etkileşim Kurmasına İzin Ver başlangıç seçeneği belirlenmiş şekilde LocalSystem hesabı altında yürütülen tüm hizmetler kullanırWinsta0\Default
. Tüm bu işlemler, Varsayılan uygulama masaüstü ile ilişkili masaüstü yığınını paylaşır.Ekran koruyucu
Ekran koruyucu masaüstü, ekran koruyucu görüntülendiğinde etkileşimli pencere istasyonunda (WinSta0) oluşturulur.
Üçüncü SharedSection değeri, etkileşimsiz bir pencere istasyonuyla ilişkili her masaüstü için masaüstü yığınının boyutudur. Bu değer yoksa, etkileşimsiz pencere istasyonları için masaüstü yığınının boyutu, etkileşimli pencere istasyonları için belirtilen boyutla (yani ikinci SharedSection değeri) aynı olur.
Yalnızca iki SharedSection değeri varsa, etkileşimsiz pencere istasyonlarında oluşturulan masaüstleri için masaüstü yığınının boyutunu belirtmek üzere üçüncü bir değer ekleyebilirsiniz.
Bir kullanıcı hesabı altında yürütülen her hizmet işlemi, Service Control Manager (SCM) tarafından oluşturulan, etkileşimsiz bir pencere istasyonunda yeni bir masaüstü alır. Bu nedenle, bir kullanıcı hesabı altında yürütülen her hizmet, üçüncü SharedSection değerinde belirtilen kilobaytlık masaüstü yığını sayısını kullanır. LocalSystem hesabı altında, Hizmetin Masaüstü ile Etkileşime İzin Ver seçili olmadığında yürütülen tüm hizmetler, etkileşimsiz hizmet Windows iş istasyonunda (Service-0x0-3e7$) Varsayılan masaüstünün masaüstü yığınını paylaşır.
Etkileşimli ve etkileşimsiz pencere istasyonlarında kullanılan toplam masaüstü yığını arabelleğe sığmalıdır.
İkinci veya üçüncü SharedSection değerinin azaltılması, ilgili pencere istasyonlarında oluşturulabilecek masaüstlerinin sayısını artırır. Daha küçük değerler, masaüstünde oluşturulabilecek kanca, menü, dize ve pencere sayısını sınırlandıracaktır. Öte yandan, ikinci veya üçüncü SharedSection değerinin artırılması, oluşturulabilecek masaüstlerinin sayısını azaltır. Ancak bu, masaüstünde oluşturulabilecek kancaların, menülerin, dizelerin ve pencerelerin sayısını da artırır.
SCM, bir kullanıcı hesabı altında çalışan her hizmet işlemi için etkileşimsiz pencere istasyonunda yeni bir masaüstü oluşturduğundan, daha büyük bir üçüncü SharedSection değeri sistemde başarıyla çalıştırılabilen kullanıcı hesabı hizmetlerinin sayısını azaltır. İkinci veya üçüncü SharedSection değeri için belirtilebilen en düşük değer 128'dir. Daha küçük bir değer kullanma girişimleri bunun yerine 128 kullanır.
Bir işlem kullanıcı nesnelerine ihtiyaç duyduğunda masaüstü yığını User32.dll tarafından ayrılır. Bir uygulama User32.dllbağımlı değilse masaüstü yığınını kullanmaz.
Uyarı
Windows Server 2003'te, aşağıdaki koşullardan biri doğru olduğunda belirli bir olay Sistem günlüğüne kaydedilir:
Masaüstü yığını dolarsa, aşağıdaki olay günlüğe kaydedilir:
Event Type: Warning Event Source: Win32k Event Category: None Event ID: 243 Date: Date Time: Time User: N/A Computer: ServerName Description: A desktop heap allocation failed.
Bu durumda masaüstü yığını boyutunu artırın.
Toplam masaüstü yığını sistem genelinde arabellek boyutuna ulaştığında, aşağıdaki olay günlüğe kaydedilir:
Event Type: Warning Event Source: Win32k Event Category: None Event ID: 244 Date: Date Time: Time User: N/A Computer: ServerName Description: Failed to create a desktop due to desktop heap exhaustion.
Bu durumda, masaüstü yığını boyutunu küçültün.
Windows Server 2003'te, aşağıdaki koşullardan biri doğru olduğunda sistem genelindeki bellek tamponu 20 MB'tır.
- Terminal Hizmetleri ortamındasınız.
- /3GB anahtarı Boot.ini dosyasında belirtilir.
Şunlar için geçerlidir:
- Microsoft Windows XP Professional
- Microsoft Windows XP Home Edition
- Windows Vista Ultimate
- Windows Vista Enterprise
- Windows Vista Business
- Windows Vista Home Premium
- Windows 7 Ultimate
- Windows 7 Enterprise
- Windows 7 Professional
- Windows 7 Home Premium
- Windows 8 Enterprise
- Windows 8 Pro, Windows 8
- Windows 8.1 Enterprise
- Windows 8.1 Pro
- Windows 8.1
- Microsoft Windows Server 2003 Datacenter Edition (32 bit x86)
- Microsoft Windows Server 2003 Datacenter x64 Edition
- Microsoft Windows Server 2003 Enterprise Sürümü (32 bit x86)
- Microsoft Windows Server 2003 Enterprise x64 Edition
- Microsoft Windows Server 2003 Standard Sürümü (32 bit x86)
- Microsoft Windows Server 2003 Standard x64 Edition
- Windows Server 2008 Datacenter
- Windows Server 2008 Enterprise
- Windows Server 2008 R2 Datacenter
- Windows Server 2008 R2 Enterprise
- Windows Server 2008 Standard
- Windows Server 2012 Datacenter
- Windows Server 2012 Standard
- Windows Server 2012 R2 Datacenter
- Windows Server 2012 R2 Standard