Condividi tramite


Scrittura di un provider di metodi

Un provider di metodi consente l'accesso WMI ai metodi di una classe. Ad esempio, una classe che rappresenta un'applicazione può avere un metodo che termina l'applicazione.

La modifica dell'ordine dei parametri di input e output del metodo durante l'aggiornamento di un provider di metodi esistente può causare errori per le applicazioni che chiamano il metodo. L'ordine dei parametri di input o output viene stabilito dal valore del qualificatore ID in ogni parametro. Il primo parametro ha un valore ID pari a zero. Aggiungere nuovi parametri di input alla fine dei parametri esistenti anziché inserirli nella sequenza già stabilita.

La procedura seguente descrive come implementare un provider di metodi.

Per implementare un provider di metodi

  1. Progettare e registrare il provider di classi con WMI.

    I provider di classi si registrano con WMI creando un'istanza di __Win32Provider e una classe __MethodProviderRegistration . Per altre informazioni, vedere Registrazione di un provider di metodi.

  2. Implementare l'interfaccia IWbemProviderInit per il provider.

    Nota

    I provider di metodi sono fortemente invitati a usare il modello di multithreading "Entrambi".

     

  3. Implementare il metodo IWbemServices::ExecMethodAsync per il provider.

    L'interfaccia IWbemServices è l'interfaccia primaria per un provider di metodi. Per altre informazioni, vedere Implementazione dell'interfaccia primaria per un provider di metodi.

  4. Aggiungere qualsiasi codice aggiuntivo necessario per il provider.

    Quando si progetta il provider, è più probabile che sia necessario chiamare interfacce WMI. Per altre informazioni, vedere Chiamata di un metodo e gestione dei livelli di sicurezza in un provider.

    Quando si recuperano informazioni per un client, potrebbe essere necessario accedere ai livelli di sicurezza per tale client. Per altre informazioni, vedere Rappresentazione di un client.

  5. Sostituire il provider preesistente con il nuovo codice.

    Non è necessario eseguire questo passaggio se non si dispone di un provider preesistente da copiare. Per altre informazioni, vedere Aggiornamento di un provider.