Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Moderne prestatiegegevensproviders gebruiken een manifest om de prestatiegegevens te definiëren en prestatiecounter provider-API's te gebruiken voor het beheren van gegevens binnen de context van de provider. Providers die zijn geïmplementeerd met behulp van een manifest en prestatieindicator-API's, worden vaak V2-providersgenoemd. Windows ondersteunt V2-providers in de gebruikersmodus op Windows Vista of hoger en V2-providers in kernelmodus op Windows 7 of hoger.
Op deze pagina worden V2-providers in de gebruikersmodus beschreven. Zie Prestatiebewaking van kernelmodusvoor meer informatie over V2-providers in de kernelmodus.
Tijdens runtime werken V2-providers als volgt:
- Het providerproces registreert zich bij het Windows Performance Counter-systeem door PerfStartProvider en PerfSetCounterSetInfo aan te roepen. De provider biedt optioneel een callback-functie die wordt geïnformeerd over consumentenaanvragen.
- Het providerproces voegt instanties toe of verwijdert deze naar wens met behulp van PerfCreateInstance en PerfDeleteInstance. De provider werkt prestatiemeteritems bij wanneer deze worden gewijzigd met behulp van PerfSet** API's.
- Een consument doet een aanvraag voor gegevens uit een tegenset. Het systeem controleert of de beller machtigingen heeft om de gegevens te verzamelen. Het systeem gebruikt vervolgens een worker-thread die wordt uitgevoerd in het providerproces om het verzoek af te handelen, waarbij indien van toepassing de callback-functie van de provider wordt aangeroepen. De werkdraad kopieert de verzamelde gegevens naar een door het systeem beheerde buffer en vervolgens geeft het systeem de gegevens terug aan de gebruiker.
Stappen voor het maken van een provider
Schrijf een manifest dat de tellergegevens definieert die uw provider zal verstrekken. Zie Prestatiemeteritemsschemavoor meer informatie over het schrijven van het manifest.
Gebruik CTRPP- om de sjablooncode te genereren die u in uw provider opneemt. De sjablooncode bevat de structuren die de tellersets definiëren, de CounterInitialize en CounterCleanup functies en de resourcereeksen.
Uw provider moet de functies CounterInitialize en CounterCleanup aanroepen. De CounterInitialize roept de functie PerfStartProvider aan om de provider te registreren en roept ook de functie PerfSetCounterSetInfo aan om de tellerset te initialiseren. De CounterCleanup- roept de PerfStopProvider functie aan om de registratie van de provider te verwijderen.
Neem de sjablooncode van de vorige stap in uw project op en voltooi uw provider.
Als u de provider wilt voltooien, moet u de PerfCreateInstance-functie aanroepen voor elk exemplaar van de tellerset die u opgeeft.
Als u de tellerwaarden wilt instellen, roept u een van de volgende functies aan:
Het voordeel van het gebruik van PerfSetCounterRefValue is dat u geen functieaanroep hoeft te maken om de tellerwaarde in te stellen of bij te werken. U hoeft alleen de lokale tellervariabele (de variabele waarnaar de referentiepunten worden verwezen) bij te werken en prestatiemeteritems gebruikt de aanwijzer om toegang te krijgen tot de tellerwaarde.
Als u PerfSetCounterRefValueniet gebruikt, kunt u de volgende functies gebruiken om de tellerwaarde te verhogen of te verlagen:
- PerfDecrementULongCounterValue
- PerfDecrementULongLongCounterValue
- PerfIncrementULongCounterValue
- PerfIncrementULongLongCounterValue
Voordat de provider verlaat, moet deze de PerfDeleteInstance aanroepen voor elke instantie van de tellerset die het heeft gemaakt.
Als u het kenmerk callback hebt opgegeven in het providerelement in uw manifest of het argument -NotificationCallback hebt gebruikt bij het aanroepen van CTRPP-, moet u de ControlCallback-functie callback implementeren. U geeft de callback-functie door aan CounterInitialize.
Als u de -MemoryRoutines hebt gebruikt bij het aanroepen van CTRPP-, moet u de AllocateMemory- en FreeMemory callback-functies implementeren. U geeft de callback-functies door aan CounterInitialize.
Wanneer u uw provider installeert, gebruikt u het hulpprogramma LodCtr om de naam te schrijven van het binaire bestand dat de gelokaliseerde resourcetekenreeksen en resource-id's in het register bevat. Zie Performance Counters Schemavoor meer informatie over het gebruik van LodCtr.
Wanneer u uw provider verwijdert, gebruikt u het hulpprogramma UnlodCtr om de gegevens van uw provider uit het register te verwijderen.