Ako používať funkciu špeciálny bazén izolovať bazén škody

Preklady článku Preklady článku
ID článku: 188831 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Súhrn

Bazén poškodenie môže spôsobiť mnohé z najviac vyhýbavý problémy s Windows NT. bazén škoda je spôsobená, keď jadroveho súčasť píše do pamäte mimo prideleného bazéna. Písomne pamäť za hranicami svojej pridelenej oblasti, je pravdepodobné, že ďalším oblasť vyhradená pamäť, prípadne vo vlastníctve iného komponentu, je prepísaný. Toto poškodenie môže spôsobiť problémy, ako sú modrej obrazovky v úplne nesúvisiacich kód oblasti. Súčasť režimu jadra čítanie mimo svojej pridelenej oblasti môžete tiež spôsobiť problémy.

Či je to spôsobené vdôsledku Výrobcovia (OEM) ovládače alebo problémy v systéme Windows, bazén poškodenie problémy sú niektoré z najviac ťažké zistiť. Obvykle, všetko, čo môže byť videný v havárie skládka rozbor je príznakom skutočný problém, ako je oblasť údajov stáva poškodené a spôsobujú problémy v úplne nesúvisiace blok kódu. Doteraz to bolo takmer nemožné nájsť v segmente kód ktoré poškodzuje pamäť.

Teraz možné identifikovať zdroj bazén škody na pokyn poškodeniu bazéna. Nový nástroj riadenia pamäte to je pomenované špeciálny bazén je súčasťou systému Windows 2000, Windows NT 4.0 Service Pack 4 (SP4), Windows XP, Windows Server 2003, Windows Vista a Windows Server 2008. Pomôcku osobitné bazén identifikuje súčasti režimu jadra poškodzuje zhromažďovanie údajov písomne do pamäte mimo svojej pridelenej oblasti.

Poznámka Ladenie pamäti sa nevzťahuje na Windows Vista a Windows Server 2008. Avšak funkciu špeciálny bazén platia pre tieto produkty.

Ďalšie informácie

Dôležité Tento oddiel, metóda alebo úloha obsahuje kroky, ktoré vám povedať, ako upraviť databázu registry. Avšak, môžu spôsobiť vážne problémy ak databázu registrov upravíte nesprávne. Preto sa uistite, že ste postupovali správne. Doporučujeme zálohovať databázu registrov skôr, ako zmeníte jej hodnoty. Potom, môžete obnoviť databázu registrov, ak sa vyskytne problém. Ďalšie informácie o zálohovaní a obnovení databázy registrov nájdete po kliknutí na nasledovné číslo článku publikovaného v Microsoft Knowledge Base:
322756 Ako zálohovať a obnovenie databázy registry v systéme Windows


Pomôcku osobitné bazén vyhradí dve stránky virtuálnej pamäte pre každý bazén prostriedkov, ktoré požaduje prostredníctvom ExAllocatePoolWithTag zhodný nasledujúce kritériá:
  • Požiadavka na vyhradenie musí byť menšia ako veľkosť Maximálna alokácia, ktorý sa zmestí na stránke bazén.
  • Žiadosť musí zodpovedať špecifikácii PoolTag databázy Registry.
Bazén prekročenie detekcie, prvej stránke sa používa na obsahovať rozdelenie na konci stránky. Druhá stránka je stráž. Pre bazén proti podbehnutiu detekcie, prvá stránka je stránka, stráž. To je nasledované stránka, ktorá obsahuje rozdelenie na začiatku stránky.

Prekročenie detekcie je pravdepodobne najpoužívanejší. Zistenie prekročenia, požadované pridelenie je umiestnená na konci prvej stránky na zálohovanie veľkosť požiadať na konci stránky. Veľkosť alokačnej je zaokrúhlené nahor 8-bajtovú hranicu. Vzor kľúč, veľkosť a bazén tag informácií sú Napísal hlavičke v prvých osem bytov prvej strany. Vzor je tiež vypestované v celej stránky. Pretože pridelenie je umiestnený na najbližšie 8-bajtovú hranicu, tam môže byť toľko ako sedem bytov rozliať po rozdelenie. Vzor je tiež napísané bajtov rozliať po rozdelenie.

Druhá stránka je stránka, stráž. Strážna stránka sa skladá zo špeciálnej stránke položky tabuľky (PTE) označený žiadny prístup ochrana. Označením táto druhá strana s žiadny prístup ochrany, akýkoľvek kód snaží čítať alebo zapisovať mimo konci prvého stránky okamžite spôsobuje porušenie prístupu, ktorá vedie k Stop 0x0000000A alebo chyba Stop 0x0000001E. To umožňuje niekto ladenie systému zistiť presné inštrukcie to spôsobuje škody na bazén.

Ako záložné kontrola chytiť porušujúci, že písať po skončení pridelenia, ale nie po skončení stránky, limonáda bajtov na konci pridelenia sú overené počas voľného fondu žiadosť (ExFreePoolWithTag). Rozliať bytov sú v porovnaní s vzor rozdelenie hlavičke na určenie, či niečo je prepísaný v oblasti bajt rozliať. Ak overenie nefunguje, chybu Stop 0x00000001A vyskytuje.

Táto kontrola nevyhnutne nájsť presné blok kód, ktorý spôsobí poškodenie bazén. Avšak, to môže pomôcť identifikovať súčasti to spôsobuje škody.

Aby sa umožnilo pomôcku osobitné bazén, pridať nasledujúce kľúče a hodnoty databázy Registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Názov hodnoty: PoolTag
Typ údajov: REG_DWORD
Údajov: Maska tag bazén | Rozdelenie veľkosti masky | 0
Bazén značku maska je identifikácia značky bazén, ktorý obsahuje maskovanie znaky na bazén, v ktorom chcete dať v špeciálnom fonde. Táto maska musí byť zadaná v šestnástkovom zápise v obrátenom poradí. Táto maska môže obsahovať aj "?" maskovať jeden znak alebo "*" do Maska tu na konci záznamu. Napríklad sledovať všetky bazény s bazénom tag, ktorý začína s "Nt", zadajte "2A744E" (bez úvodzoviek), ktorá predstavuje "* tN".

Na Nasledujúca tabuľka obsahuje ďalšie príklady.
   Pool to monitor   Character representation   Pool tag mask
   ----------------------------------------------------------               
   All pools         "*"                        0x2A
   N??s              "s??N"                     0x733F3F4E
				
Rozdelenie veľkosti maska špecifikácie miesta všetky bazén rozdelenie Zadaná veľkosť do osobitného fondu. To je tiež uvedené v šestnástkovom zápise. Napríklad, ak všetky prídely 32 bajtov sú umiestnené v špeciálnom fonde, Zadajte 0x20.

Ak je zadaný nulový (0x0), pomôcku osobitné bazén nie je inicializovaný. Okrem toho pomôcku osobitné bazén nie je inicializovaný ak hodnotu PoolTag databázy registry nie je definovaná v databáze registry.
Názov hodnoty: PoolTagOverruns
Typ údajov: REG_DWORD
Údajov: 1 | 0
1 označuje, že bazén rozdelenie prekročení zistia pre značka špecifikované. Pridelenie sa nachádza na konci stránky a stráž stránka sleduje.

hodnota 0 označuje, že bazén rozdelenie underruns sú zistené pre Tag. Pridelenie sa nachádza na začiatku stránky a stránky stráž prichádza pred stránku obsahujúcu rozdelenie.

Spoločné používanie príkladov vytvoriť tieto dve databázy registry kľúče by sa takto:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ Memory Management


Názov hodnoty: PoolTag
Typ údajov: REG_DWORD
Údajov: 0x2A

Názov hodnoty: PoolTagOverruns
Typ údajov: REG_DWORD
Údajov: 1


Poznámka Pre systém Windows NT Terminal Server 4.0, musíte zakázať KStackPool Ak použijete špeciálny bazén. K tomu pridajte nasledujúcu hodnotu databázy registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Názov hodnoty: EnableKStackPool
Typ údajov: REG_DWORD
Údajov: 0

1 - KStack bazén vždy zapnuté
2 - KStack bazén povolené pre počítače, ktoré majú, 256 MB alebo viac pamäť (predvolené)
Ak nie si túto zmenu na termináli Serverových počítačov, ktoré majú, 256 MB alebo viac pamäte, dostanete "STOP 0x00000078 (PHASE0_EXCEPTION) "chybové hlásenia.


Poznámka Špeciálny bazén funkcia nemusí pracovať v systéme Windows Server 2003, ak existujú dostatočné špeciálne stránkovacej tabuľky (PTEs). Tento problém sa zvyčajne vyskytuje na single-user terminálových serveroch obsahujúce viac než 1 GB RAM a ktoré majú pamäť riadenia tuning hodnoty počítača nastavené na predvolené hodnoty. Tento problém sa nevyskytuje v 64-bitových verziách systému Windows Server 2003.

Memory dump súbor analýzu tohto problému môže obsahovať nasledovné informácie:
*** 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
Problém môžete overiť podľa veľkosti špeciálnom fonde, ktorá je jej pridelená z analýzy. V tomto prípade problém sa vyskytuje, pretože tieto osobitné bazén PTE hodnoty sú rovnaké:
  • MiSpecialPoolFirstPte
  • MiSpecialPoolLastPte
Tento problém môže nastať aj položka MmSpecialPoolRejected databázy registry hodnotu tri alebo viac.

Obísť tento problém, nakonfigurujte hodnota PagedPoolSize položka databázy registry na hodnotu, ktorá je menšia ako veľkosť stránkovaný fond, ktorý je povolený. Napríklad nastavenie PagedPoolSize položka databázy registry na hodnotu 256 MB. Ak chcete nastaviť väčšiu hodnotu, pomocou nástroja Sledovanie výkonu počítača po iadavku väčšej veľkosti stránkovaný fond.

Pre PagedPoolSize položka databázy registry môžete použiť nasledovné hodnoty:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Pre systém Windows Server 2003 bez aktualizácie service pack:

Názov hodnoty: PagedPoolSize
Typ údajov: REG_DWORD
Údajov: 10000000
Základňa: šestnástkové

Pre systém Windows Server 2003 Service Pack 1 (SP1) nainštalované:

Názov hodnoty: PagedPoolSize
Typ údajov: REG_DWORD
Údajov: FFFFFFFF SLUŽBY
Základňa: šestnástkové

Poznámka Potom budete vykonávať žiadne zmeny v databáze registry, ktoré sú opísané v tomto článok, reštartujte počítač, aby sa zmeny prejavili.

Ak po zapnutí funkcie špeciálny bazén, počítač prestane reagovať (visí), a môžete zobraziť chybové hlásenie na modrej obrazovke pri spustení, restart počítača s použitím poslednej známej funkčnej konfigurácie možnosť. Zapnutie funkcie špeciálny bazén nie je napísaný na poslednú dobrý známy Konfiguračný záznam v databáze registry až po úspešnom prihlásení.

Vlastnosti

ID článku: 188831 - Posledná kontrola: 19. apríla 2013 - Revízia: 2.1
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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
  • Balík Service Pack 2 pre systém 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
Kľúčové slová: 
kbenv kbhowto kbqfe kbmt KB188831 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 188831

Odošlite odozvu

 

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