Cum să utilizați caracteristica de piscina speciala pentru a izola piscină daune

Traduceri articole Traduceri articole
ID articol: 188831 - View products that this article applies to.
Măriți totul | Reduceți totul

Rezumat

Piscina daune poate cauza multe dintre cele mai evaziv probleme cu Windows NT. piscina daune se produce atunci când un miez-model componenta scrie memorie în afara zonei de piscină alocate. Scris la memorie dincolo de limita zonei alocate acestuia, este probabil că un alt zona de memorie alocată, eventual, deținut de o altă componentă, este suprascris. Acest prejudiciu poate cauza probleme, cum ar fi ecrane albastre în complet fără legătură zonele de cod. O componentă de mod nucleu lectură dincolo de zona sa de alocate pot de asemenea, cauza probleme.

Dacă aceasta este cauzată de echipament Original Drivere de producatori (OEM) sau probleme în Windows, probleme de daune piscină sunt unele dintre cele mai dificile pentru a identifica. De obicei, tot ce poate fi văzut într-un analiza de imagine accident este simptom al problema reală, cum ar fi o zonă acoperire de date a deveni deteriorate și cauzează probleme într-un complet fără legătură cu bloc de cod. Până acum, a fost aproape imposibil de a găsi segment de cod care deteriorează memoria.

Sursa de piscină daune pot fi acum identificate la instruirea cauzand pagube de piscina. Un nou utilitate de management de memorie care este numit piscină specială este inclus cu Windows NT 4.0 pachet Service Pack 4 (SP4), Windows 2000, Windows XP, Windows Server 2003, Windows Vista si Windows Server 2008. Utilitarul speciale piscină identifică în componenta modului kernel este dăunător piscină date de scris memorie în afara ariei sale alocate.

Notă Memorie de tuning nu se aplică pentru Ferestre Vista și Ferestre a servi 2008. Cu toate acestea caracteristica piscină specială se aplică pentru aceste produse.

Informații suplimentare

Importante Acest secțiune, metodă sau activitate conține pași care vă spune cum să modificați registry. Cu toate acestea, grave probleme ar putea apărea dacă modificați registry incorect. Prin urmare, asigurați-vă că urmați acești pași cu atenție. Pentru protecția adăugată, spate sus a registry-ului înainte de a modifica aceasta. Apoi, aveți posibilitatea să restabiliți registry dacă apare o problemă. Pentru mai multe informații despre modul de rezervă și restabilirea registry, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
322756 Cum să face o copiere de rezervă și restabilirea registry-ului în Windows


Utilitarul piscină speciale alocă două pagini de memorie virtuală pentru fiecare bazin de alocare, care este solicitat prin ExAllocatePoolWithTag care corespunde următoarelor criterii:
  • Solicitarea de alocare trebuie să fie de dimensiuni mai mici decât alocarea maximă care se va potrivi într-o pagină de piscina.
  • Cererea trebuie să corespundă caietul de PoolTag în registru.
Pentru piscină năpădită de detectare, prima pagină este utilizat pentru a conține alocarea la sfârșitul paginii. Pagina a doua este o pagină de gardă. Pentru piscina antiîncastrare fa?ă de detectare, prima pagină este pagina de gardă. Acesta este urmat de o Pagina care conține alocarea la începutul paginii.

Depășirea de detectare este, probabil, cele mai folosite. Pentru detectarea depășirii, a solicitat alocarea este poziționat la sfârșitul anului prima pagină de back-up cerere dimensiune de la sfârșitul paginii. Dimensiunea de alocare este rotunjit până la un octet 8-limita. O cheie de model, dimensiunea și piscină tag informații sunt scris la antetul de la primele opt de octeți de prima pagina. Modelul este, de asemenea, propagă în toată pagina. Deoarece alocarea este poziționat pe cel mai apropiat de limita de 8-octet, poate fi cât mai multe șapte octeți de agent de poliție în urma alocare. Modelul este scris, de asemenea, la panta de octeți după alocare.

Pagina a doua este pagina de gardă. Pagina de gardă constă dintr-o intrare de tabel pagina speciala (PTE) care este marcat cu nr de acces protecție. De această a doua pagină cu no-accent a proteja, nici un cod de marcare încercarea de a citi sau scrie dincolo de sfârșitul prima pagina imediat cauze o violare acces care duce la un Stop 0x0000000A sau eroare de tip Stop 0x0000001E. Acest lucru permite cineva sistemul pentru a găsi instrucțiuni exacte de depanare care provoacă daune de piscina.

Ca un control de rezervă pentru a prinde incalcat care scrie dincolo de sfârșitul de alocare, dar nu dincolo de sfârșitul paginii, agent de poliție octeți de la sfârșitul de repartizare sunt validate în timpul cererea gratuit piscina (ExFreePoolWithTag). Agent de poliție octeți sunt comparativ cu modelul în alocarea antet pentru a determina dacă ceva este suprascris în zona de octet lături. În cazul în care verificarea verificare nu funcționează, o eroare de tip Stop 0x00000001A apare.

Această verificare nu neapărat găsit exactă de cod care provoacă daune de piscina. Cu toate acestea, aceasta poate ajuta la identificarea componenta care provoacă daune.

Pentru a activa utilitate piscină speciale, adăugați următoarele chei și valori de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Nume de valoare: PoolTag
Tipul acoperire de date: REG_DWORD
Date: Masca de tag-ul piscina | Masca de dimensiunea alocarea | 0
Masca de tag-ul piscina este piscina tag-ul ID-ul care conține mascare personajele din piscina în care doriți să puneți în piscină specială. Aceasta masca trebuie să fie specificate în hexazecimal în ordine reface programul sursă. Aceasta masca poate con?ine "?" pentru a masca un singur caracter sau "*" pentru a masca de aici la sfârșitul tag-ul. De exemplu, pentru a monitoriza toate bazine cu o etichetă de piscină, care începe cu "Nt", specifica "2A744E" (fără ghilimele), care reprezintă "* tN".

The Următorul tabel listează mai multe exemple.
   Pool to monitor   Character representation   Pool tag mask
   ----------------------------------------------------------               
   All pools         "*"                        0x2A
   N??s              "s??N"                     0x733F3F4E
				
Alocarea dimensiunea masca specificație locuri toate piscină alocări de anumite dimensiuni în piscină specială. Acest lucru este, de asemenea, specificate în hexazecimal. De exemplu, în cazul în care toate alocări de 32 bytes sunt poziționate în piscina speciale, Specificați 0x20.

Când zero (0x0) este specificat, piscina speciala de utilitate nu este ini?ializat. În plus, utilitarul speciale piscina nu este ini?ializat dacă valoarea de registry PoolTag nu este definită în registrul.
Nume de valoare: PoolTagOverruns
Tipul acoperire de date: REG_DWORD
Date: 1 | 0
1 indică faptul că depă?irile de alocare piscină sunt detectate pentru Tag-ul specificat. Alocarea se află la sfârșitul de pagină și Garda filme urmează.

0 indică faptul că underruns de alocare piscină sunt detectate pentru Tag-ul. Alocarea se află la început de pagină și în pagina de gardă vine înainte pagina care conține alocarea.

Exemple de utilizare comune pentru a crea aceste două registru chei ar fi după cum urmează:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ Memory Management


Nume de valoare: PoolTag
Tipul acoperire de date: REG_DWORD
Date: 0x2A

Nume de valoare: PoolTagOverruns
Tipul acoperire de date: REG_DWORD
Date: 1


Notă Pentru Terminal Windows NT Server 4.0, trebuie să dezactivați KStackPool atunci când utilizați piscină specială. Pentru aceasta, adăugați următoarea valoare de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Nume de valoare: EnableKStackPool
Tipul acoperire de date: REG_DWORD
Date: 0

1 - KStack piscina întotdeauna activată
2 - KStack piscina activat pentru computerele care au 256 MB sau mai mult memorie (implicit)
Daca nu face aceasta schimbare pe Terminal Calculatoare server care au 256 MB sau mai mult de memorie, este posibil să primiți "STOP 0x00000078 (PHASE0_EXCEPTION) "mesaje de eroare.


Notă Caracteristica specială piscină să nu funcționeze în Windows Server 2003, dacă există pagina speciala insuficient tabel intrări (PTEs). Această problemă apare, de obicei pe serverele terminale singur utilizator care conține mai mult de 1 GB de RAM și care au valori reglare de memorie de management computerului stabilit la valorile implicite. Această problemă nu se produce în 64-bit traducere de Ferestre a servi 2003.

O memorie dump fișier analiza a problemei poate să con?ină următoarele informa?ii:
*** 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
Puteți verifica problema de dimensiunea piscina Special care este alocat de analiza. În acest caz, problema apare deoarece valorile următoare speciale piscină PTE sunt egale:
  • MiSpecialPoolFirstPte
  • MiSpecialPoolLastPte
Această problemă poate apărea în cazul în care valoarea de intrarea de registry MmSpecialPoolRejected este de trei sau mai mare.

Pentru a rezolva această problemă, configurați valoarea de intrarea de registry PagedPoolSize la o valoare care este mai mică decât dimensiunea de paginate piscina care este permisă. De exemplu, setați intrarea de registry PagedPoolSize la o valoare de 256 MB. Dacă doriți să configurați o valoare mai mare, utilizați utilitarul Performance Monitor să determine cerința de pe computer pentru o dimensiune mai mare piscina paginate.

Puteți utiliza următoarele valori pentru intrarea de registry PagedPoolSize:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Pentru Windows Server 2003 fără un pachet service pack:

Nume de valoare: PagedPoolSize
Tipul acoperire de date: REG_DWORD
Date: 10000000
Baza: hexazecimal

Pentru Windows Server 2003 cu pachet Service Pack 1 (SP1) instalate:

Nume de valoare: PagedPoolSize
Tipul acoperire de date: REG_DWORD
Date: FFFFFFFF
Baza: hexazecimal

Notă După ce efectuați oricare dintre modificarile de registrii care sunt descrise în acest articolul, reporniți computerul pentru a provoca ca modificările să aibă efect.

Dacă după ce activați caracteristica specială piscina, computerul nu mai răspunde (se blochează), și veți primi un mesaj de eroare pe un ecran albastru în timpul pornirii, reporniți computerul utilizând opțiunea pentru Last Known Good Configuration. activare caracteristică specială piscina nu este scris la ultima cunoscut bun Configurare intrare în registry până după un succes logon.

Proprietă?i

ID articol: 188831 - Ultima examinare: 19 aprilie 2013 - Revizie: 0.1
Se aplică la:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003 Service Pack 2
  • Windows Vista Home Premium
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Pachet Service Pack 2 pentru Windows Vista
  • 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
Cuvinte cheie: 
kbenv kbhowto kbqfe kbmt KB188831 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 188831

Trimite?i feedback

 

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