Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Poolövervakning övervakar minnesallokeringar som görs av drivrutinen. När drivrutinen tas bort ser drivrutinsverifieraren till att alla allokeringar som gjorts av drivrutinen har frigjorts.
Minnesallokeringar som inte har använts (kallas även minnesläckor) är en vanlig orsak till lägre operativsystemprestanda. Dessa kan fragmenta systempoolerna och så småningom orsaka systemkrascher.
När det här alternativet är aktivt utfärdar drivrutinsverifieraren felkontroll 0xC4 (med parameter 1 lika med 0x62) om en drivrutin tas bort utan att alla dess allokeringar frigörs.
Om drivrutinsverifieraren utfärdar den här felkontrollen med parameter 1 lika med 0x51, 0x52, 0x53, 0x54 eller 0x59, har drivrutinen skrivit till minnet utanför allokeringarna. I det här fallet bör du aktivera funktionen Specialpool för att hitta källan till felet.
Se Felkontroll 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) för en lista över parametrarna för felkontrollen.
Från och med Windows Vista möjliggör aktivering av alternativet Poolspårning även spårning av låsta sidor. När det här alternativet är aktivt utfärdar drivrutinsverifieraren felkontroll 0xCB (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS) om en drivrutin inte släpper låsta sidor efter en I/O-åtgärd.
I Windows 7 och senare versioner av Windows-operativsystemet stöder alternativet Poolspårning minne som allokerats med hjälp av följande kernel-API:er:
IoAllocateIrp- och andra rutiner för att allokera dataskapelser för I/O-begärandepaket (IRP)
RtlAnsiStringToUnicodeString och andra RTL-strängrutiner (run-time library)
När poolspårning aktiveras i Windows 7 och senare versioner av Windows-operativsystemet kan drivrutinsverifieraren identifiera försök att allokera kernelpoolminne med kvot i samband med inaktiv process. Sådana försök innebär vanligtvis att drivrutinen allokerar minne från en DPC-rutin. Tråden eller processkontexten för DPC-rutiner är otillförlitlig, så det är felaktigt att försöka debitera kvoten för den processen.
Övervakning av poolspårning
Allokeringsstatistik för minnespooler kan övervakas separat för varje drivrutin som verifieras. Den här statistiken kan visas av Driver Verifier Manager, Verifier.exe kommandoraden eller i en loggfil. Mer information finns i Övervaka enskilda räknare .
Kernel-felsökningstillägget !verifier 0x3 kan användas för att hitta utestående minnesallokeringar när drivrutinen har inaktiverats eller för att spåra de aktuella allokeringarna medan drivrutinen körs. Det här tillägget visar även pooltaggen, poolens storlek och adressen till allokeringsgivaren för varje allokering. Information om tillägg för felsökning finns i Windows-felsökning.
Avgifter för poolkvot från DPC-rutin
Kernel-drivrutiner kan anropa ExAllocatePoolWithQuotaTag för att allokera kernelpoolminne och debitera antalet byte som allokeras till poolkvoten för den aktuella processen. Drivrutiner använder vanligtvis kvoter för minnestilldelning som är direkt relaterade till en begäran som kommer från en applikation.
Rutiner för uppskjutet proceduranrop (DPC) kan köras i samband med alla processer. Därför påverkar debiteringsgränsen från en DPC-rutin en slumpmässig process. Ännu värre är att när DPC-rutinen körs i samband med inaktivitetsprocessen kan det här villkoret leda till minnesskada eller systemkrascher.
Från och med Windows 7 identifierar drivrutinsverifieraren ExAllocatePoolWithQuotaTag-anrop från DPC-rutiner.
aktivera det här alternativet
Du kan aktivera funktionen Poolspårning för en eller flera drivrutiner med hjälp av Driver Verifier Manager eller kommandoraden Verifier.exe. Mer information finns i Välja alternativ för drivrutinsverifierare.
På kommandoraden
På kommandoraden representeras alternativet Poolspårning av bit 3 (0x8). Om du vill aktivera poolspårning använder du ett flaggvärde på 0x8 eller lägger till 0x8 i flaggvärdet. Till exempel:
verifier /flags 0x8 /driver MyDriver.sysFunktionen är aktiv efter nästa start.
I Windows Vista och senare versioner av Windows kan du också aktivera och inaktivera poolspårning utan att starta om datorn genom att lägga till parametern /volatile i kommandot. Till exempel:
verifier /volatile /flags 0x8 /adddriver MyDriver.sysDen här inställningen gäller omedelbart, men går förlorad när du stänger av eller startar om datorn. Mer information finns i Använda flyktiga inställningar.
Funktionen Poolspårning ingår också i standardinställningarna. Till exempel:
verifier /standard /driver MyDriver.sysAnvända Drivrutinsverifieringshanteraren
- Starta hanteraren för drivrutinsverifierare. Skriv Verifier i ett kommandotolkfönster.
- Välj Skapa anpassade inställningar (för kodutvecklare) och klicka sedan på Nästa.
- Välj Välj enskilda inställningar i en fullständig lista.
- Välj (kontrollera) Poolspårning.
Funktionen Poolspårning ingår också i standardinställningarna. Om du vill använda den här funktionen klickar du på Skapa standardinställningar i Drivrutinsverifierarhanteraren.