Delen via


Een methodeprovider schrijven

Met een methodeprovider heeft WMI toegang tot de methoden van een klasse. Een klasse die een toepassing vertegenwoordigt, kan bijvoorbeeld een methode hebben waarmee de toepassing wordt beëindigd.

Als u de volgorde van de invoer- en uitvoerparameters van de methode wijzigt bij het bijwerken van een bestaande methodeprovider, kan dit fouten veroorzaken voor toepassingen die de methode aanroepen. De volgorde van de invoer- of uitvoerparameters wordt bepaald door de waarde van de -id kwalificatie voor elke parameter. De eerste parameter heeft een -id waarde van nul. Voeg nieuwe invoerparameters toe aan het einde van de bestaande parameters in plaats van deze in te voegen in de reeds vastgestelde reeks.

In de volgende procedure wordt beschreven hoe u een methodeprovider implementeert.

Een methodeprovider implementeren

  1. Ontwerp en registreer uw klasseprovider bij WMI.

    Klasseproviders registreren zich bij WMI door een __Win32Provider exemplaar en een __MethodProviderRegistration-klasse te maken. Zie Een methodeprovider registrerenvoor meer informatie.

  2. Implementeer de IWbemProviderInit-interface voor uw provider.

    Notitie

    Methodeproviders worden sterk aangemoedigd om het multithreadingmodel 'Beide' te gebruiken.

     

  3. Implementeer de IWbemServices::ExecMethodAsync methode voor uw provider.

    De IWbemServices interface is de primaire interface voor een methodeprovider. Zie De primaire interface voor een methodeprovider implementerenvoor meer informatie.

  4. Voeg eventuele extra code toe die nodig is voor uw provider.

    Bij het ontwerpen van uw provider moet u waarschijnlijk WMI-interfaces aanroepen. Zie Een methode aanroepen en Beveiligingsniveaus onderhouden in een Provider-voor meer informatie.

    Bij het ophalen van informatie voor een client moet u mogelijk toegang krijgen tot de beveiligingsniveaus voor die client. Zie Een client-imiteren voor meer informatie.

  5. Vervang de bestaande provider door uw nieuwe code.

    U hoeft deze stap niet uit te voeren als u geen bestaande provider hebt om deze te kopiëren. Zie Een provider bijwerkenvoor meer informatie.