Havuz zarar ayırmak için özel havuz özelliği nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 188831 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

En çok havuz hasara neden Çekirdek modu, Windows NT havuzu zarar evasive sorunlar neden olur bellek havuzu ayrılmış alanı dışında bileşen yazar. Yazılı tarafından bellek ayrılmış kendi alanı sınırları ötesinde, bu büyük olasılıkla, başka bir büyük olasılıkla başka bir bileşen tarafından sahip olunan ayrılmış bellek alanının üzerine yazılır. Bu hasar tamamen ilişkisiz içinde mavi ekranlar gibi sorunlara neden olabilir Kodu alanları. Bir çekirdek modu bileşeni kendi ayrılmış alanı dışında okuma yapabilirsiniz Ayrıca sorun.

Bu orijinal ekipman tarafından neden olur Sürücülerin üreticileri (OEM) veya Windows sorunlarını, havuz zarar sorunlar şunlardır Bazı en zor tanımlamak. Genellikle, tüm görülebilir bir kilitlenme bilgi döküm analiz veri alanı gibi gerçek sorun belirtisi olan zarar görmüş ve neden tamamen ilişkisiz bir kod bloğu sorunları olma. Şimdiye kadar kod parçası bulmak neredeyse imkansız bellek, zarar.

Kaynak havuzu hasar şimdi belirlenebilir yönerge havuzu hasara neden oluyor. Yeni bellek yönetimi yardımcı programı başka bir deyişle Windows NT 4.0 Service Pack 4 ile (SP4), Windows 2000, adland?r?lm?? özel havuz bulunur Windows XP, Windows Server 2003, Windows Vista ve Windows Server 2008. Özel havuz yardımcı programı Havuz veri yazma tarafından zarar çekirdek modu bileşeni belirtir bellek, ayrılmış alanı dışında.

Not Bellek ayarlama Windows Vista ve Windows Server 2008 için geçerli değildir. Ancak özel havuz özelliği bu ürünler için geçerlidir.

Daha fazla bilgi

Önemli Bu bölüm, yöntem veya görev kayıt defterini nasıl değiştireceğinizin anlatıldığı adımlar içermektedir. Ancak, kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatlice uyguladığınızdan emin olun. Daha fazla koruma için değiştirmeden önce kayıt defterini yedekleyin. Daha sonra bir sorun çıktığında kayıt defterini geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
322756 Yedekleme ve Windows kayıt defterini geri yükleme hakkında


Özel havuz yardımcı programı İstenen her havuz ayırma için iki sayfa sanal bellek ayırır Aşağıdaki ölçütlere uyan ExAllocatePoolWithTag:
  • Ayırma isteği için daha küçük bir boyutta olması gerekir bir havuz sayfaya sığacak en büyük ayırma.
  • İstek öğesinin belirtiminde eşleşmelidir kayıt defteri.
Havuz taşma algılama için ilk sayfa kapsamak için kullanılır Sayfa sonunda ayırma. İkinci Sayfa koruma sayfasıdır. İçin Havuz boşalması algılama, ilk sayfa koruma sayfasıdır. Tarafından izlenen bir Ayırma başına sayfa içeren sayfa.

Taşma algılama muhtemelen en kullanılır. Taşma algılama için ayırma konumlandırılmış ilk sayfanın sonunda Yedekleme tarafından istenen İstek boyutu sayfa sonundan. Ayırma boyutu en çok yuvarlak bir 8 bayt sınırının. Bir desen anahtarı, boyutu ve havuz etiket bilgileri İlk sekiz bayt ilk sayfanın başlığı yazılır. Desen Ayrıca sayfa yayılır. Ayırma üzerine yerleştirilmiş olduğundan 8 bayt sınırının en yakın olabilir izleyen en çok yedi slop bayt ayırma. Desen de slop baytları için yazılmış ayırma.

İkinci Sayfa koruma sayfasıdır. Koruma sayfası ile erişim yok olarak işaretlenmiş bir özel sayfa tablosu girdisi (PTE) oluşur koruma. Bu ikinci erişim yok koruması, herhangi bir kod sayfası olarak işaretlemek için Okuma veya yazma ilk sonuna sayfa hemen ötesine neden çalışıyor Dur 0x0000000A veya Stop 0x0000001E hata ile sonuçlanan bir erişim ihlali. Bu kişinin tam bir yönerge bulmak için sistem hata ayıklama sağlar Havuz hasara neden olur.

Yazma çarptırılır yakalamak için bir yedekleme denetimi olarak Son ayırma ancak slop sayfa sonunun ötesinde değil bayt ayırma sonundaki boş havuz isteği sırasında doğrulanır. (ExFreePoolWithTag). Slop bayt deseni karşılaştırılır ayırma üstbilgi hepsi olup olmadığını belirlemek için slop bayt alanında üzerine yazılır. Doğrulama denetimi çalışmazsa, bir 0x00000001A Dur hatası oluşur.

Bu denetim tam bloğunu bulmak değil Havuz zarara neden olan kodu. Ancak, bu bileşeni sorunlarını gidermenize yardımcı olabilir hasara neden olur.

Özel havuz yardımcı programı'nı etkinleştirmek için ekleme Aşağıdaki anahtarları ve değerleri kayıt defterine:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Değer adı: Öğesinin
Veri türü: REG_DWORD
Veri: Havuz etiketi maskesi | Ayırma boyutu maskesi | 0
Maskeleme içeren havuzu etiket kimliği havuzu etiket maskesidir Özel havuzda yerleştirmek istediğiniz havuzu karakter. Bu maske onaltılık olarak ters sırada belirtilmelidir. Bu maske de içerebilir "?" tek bir karakteri maskelemek için veya "*" etiketi sonuna buradan maskesi. Örneğin, "Nt" ile başlayan bir havuz etiketi ile tüm havuzları izlemek için belirtme "Temsil eden 2A744E" (tırnak işaretleri olmadan), "* tN".

, Daha fazla örnek aşağıdaki tabloda listelenmektedir.
   Pool to monitor   Character representation   Pool tag mask
   ----------------------------------------------------------               
   All pools         "*"                        0x2A
   N??s              "s??N"                     0x733F3F4E
				
Ayırma boyutu maske belirtimine yerleştirir, tüm havuz ayırmaları Özel havuz belirtilen boyuta. Bu da onaltılık olarak belirtilir. Örneğin, 32 bayt tüm ayırmaları özel havuzda konumlandırdıysanız, 0x20 belirtin.

Sıfır (0x0) belirtilmişse, özel havuz yardımcı programı başlatılmadı. Buna ek olarak, özel havuz yardımcı programı, başlatılmadı Öğesinin kayıt defteri değeri kayıt defterinde tanımlı değil.
Değer adı: PoolTagOverruns
Veri türü: REG_DWORD
Veri: 1 | 0
1 gösterir havuz ayırma taşmaları için algılandı Belirtilen etiket. Ayırma sayfası ve koruma sonunda yer alır Sayfa izler.

0 gösterir havuz ayırma underruns için algılandı Etiket. Ayırma sayfası ve koruma sayfası başında yer alır Tahsisatı içeren sayfa önce gelir.

Bu iki kayıt defteri anahtarları oluşturmak için ortak kullanım örnekleri şu şekilde olacaktır:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ Memory Management


Değer adı: Öğesinin
Veri türü: REG_DWORD
Veri: 0x2A

Değer adı: PoolTagOverruns
Veri türü: REG_DWORD
Veri: 1


Not Windows NT Terminal Server 4.0 için KStackPool devre dışı bırakmalısınız Özel havuz kullandığınızda. Bunu yapmak için aşağıdaki kayıt defteri değerini ekleyin:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Değer adı: EnableKStackPool
Veri türü: REG_DWORD
Veri: 0

1 - Her zaman etkin KStack havuzu
2 - 256 MB veya daha fazla olan bilgisayarlarda etkinleştirilmiş KStack havuzu bellek (varsayılan)
Terminal üzerinde bu değişiklik yapmazsanız 256 MB veya daha fazla belleği olan sunucu bilgisayarları "Dur 0x00000078 alabilirsiniz (PHASE0_EXCEPTION) "hata iletileri.


Not Yetersiz özel sayfa tablosu girdileri (PTE) varsa, Windows Server 2003'te Özel havuz özelliği çalışmayabilir. 1 GB'den fazla RAM içeren ve varsayılan değerlerini ayarlama bilgisayarın bellek yönetimi ayarlama değerleri içeren tek kullanıcı terminal sunucularında genellikle bu sorun oluşur. Bu sorun, Windows Server 2003'ün 64-bit sürümlerinde oluşmaz.

Bellek döküm dosyasını analiz konu aşağıdaki bilgileri içerebilir:
*** Virtual Memory Usage *** 
Physical Memory: 1015660 ( 4062640 Kb) 
Page File: \??\C:\Pagefile1\pagefile.sys 
Current: 4193280Kb Free Space: 4180856Kb 
Minimum: 4193280Kb Maximum: 4193280Kb 
Available Pages: 552680 ( 2210720 Kb) 
ResAvail Pages: 932179 ( 3728716 Kb) 
Locked IO Pages: 347 ( 1388 Kb) 
Free System PTEs: 187166 ( 748664 Kb) 
Free NP PTEs: 32765 ( 131060 Kb) 
Free Special NP: 117228 ( 468912 Kb) 
Modified Pages: 106 ( 424 Kb) 
Modified PF Pages: 98 ( 392 Kb) 
NonPagedPool Usage: 6599 ( 26396 Kb) 
NonPagedPool Max: 65536 ( 262144 Kb) 
PagedPool 0 Usage: 10697 ( 42788 Kb) 
PagedPool 1 Usage: 1240 ( 4960 Kb) 
PagedPool 2 Usage: 1239 ( 4956 Kb) 
PagedPool 3 Usage: 1265 ( 5060 Kb) 
PagedPool 4 Usage: 1231 ( 4924 Kb) 
PagedPool Usage: 15672 ( 62688 Kb) 
PagedPool Maximum: 90112 ( 360448 Kb) 
Shared Commit: 3866 ( 15464 Kb) 
Special Pool: 511 ( 2044 Kb) <-- very small
Shared Process: 5205 ( 20820 Kb) 
PagedPool Commit: 15672 ( 62688 Kb) 
Driver Commit: 2091 ( 8364 Kb) 
Committed pages: 439832 ( 1759328 Kb) 
Commit limit: 2023823 ( 8095292 Kb)

0: kd> dd nt!MmSpecialPoolRejected l8 
8057afe0 00000000 00000000 00b2e59a 00000000 <-- A DWORD value of 3 causes special pool PTE's shortage.
8057aff0 00000000 00000000 00000000 00000000

8057afd8 nt!MiSpecialPoolFirstPte = 0xc022af78
8057afd4 nt!MiSpecialPoolLastPte = 0xc022af78
Sorunu çözümleme tahsis edilen özel havuz boyutu doğrulayabilirsiniz. Bu durumda, sorun aşağıdaki özel havuz PTE değerleri eşit olduğu için oluşur:
  • MiSpecialPoolFirstPte
  • MiSpecialPoolLastPte
MmSpecialPoolRejected kayıt defteri girdisinin değeri üç ise de bu sorun oluşabilir veya daha büyük.

Bu soruna geçici bir çözüm için izin verilen disk belleği havuzu boyutundan daha küçük bir değere PagedPoolSize kayıt defteri girdisinin değerini yapılandırın. Örneğin, PagedPoolSize kayıt defteri girdisi için bir değer ayarlamak 256 MB. Daha büyük bir değer yapılandırmak istiyorsanız, bilgisayarın daha büyük bir disk belleği havuzu boyutu gereksinimini belirlemek için Performans İzleyicisi yardımcı programı kullanın.

PagedPoolSize kayıt defteri girdisi için aşağıdaki değerleri kullanabilirsiniz:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Bir hizmet paketi yüklü olmayan Windows Server 2003 için:

Değer adı: PagedPoolSize
Veri türü: REG_DWORD
Veri: 10000000
Temel: onaltılık

Windows Server 2003 Service Pack 1 (SP1):

Değer adı: PagedPoolSize
Veri türü: REG_DWORD
Veri: FFFFFFFF
Temel: onaltılık

Not Açıklanan kayıt defteri değişiklikleri bu yaptıktan sonra makale, değişikliklerin etkili olması için bilgisayarı yeniden başlatın.

Eğer Özel havuz özelliği etkinleştirdikten sonra bilgisayar yanıt vermiyor (kilitleniyor) ve başlangıç sırasında mavi ekranda bir hata iletisi alıyorsunuz, yeniden başlatın Bilgisayarı bilinen son iyi yapılandırma seçeneğini kullanarak. Özel havuz özelliği etkinleştirmek son bilinen iyi yazılmaz Kadar başarılı bir oturum açma sonra kayıt defterindeki yapılandırma girdisi.

Özellikler

Makale numarası: 188831 - Last Review: 19 Nisan 2013 Cuma - Gözden geçirme: 0.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Service Pack 2
  • Windows Vista Home Premium
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Windows Vista Service Pack 2
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Service Pack 2
  • Windows 7 Home Premium
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows 7 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Service Pack 1
Anahtar Kelimeler: 
kbenv kbhowto kbqfe kbmt KB188831 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 188831

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com