Condividi tramite


Inizializzazione di un provider

Una delle prime attività che è necessario codificare per un provider è il processo di inizializzazione, che copre tutte le attività che il provider deve eseguire che consente di inviare e ricevere informazioni da WMI, controllare un oggetto gestito ed eseguire altre attività. Ogni tipo di provider ha un set diverso di attività che deve eseguire e ha un set di interfacce univoche a corredo.

Tuttavia, tutti i provider vengono inizializzati tramite l'interfacciaIWbemProviderInite informano WMI del relativo stato di inizializzazione tramite l'interfaccia IWbemProviderInitSink.

La procedura seguente descrive come inizializzare un provider.

Inizializzare un provider

  1. Implementare IWbemProviderInit::Initialize per il tuo provider.

    Quando WMI determina che un client richiede i servizi di un provider, WMI carica il provider chiamando il metodo IWbemProviderInit::Initialize.

  2. Implementare qualsiasi interfaccia univoca per il tipo di provider.

  3. Informare WMI che il provider ha concluso l'inizializzazione chiamando IWbemProviderInitSink::SetStatus.

    Tutte le implementazioni di IWbemProviderInit::Initialize devono chiamare IWbemProviderInitSink::SetStatus per segnalare lo stato di inizializzazione a WMI. Il metodo SetStatus consente a WMI di determinare se un provider è pronto per ricevere le richieste e il tipo di richieste che il provider è pronto per la ricezione.

La procedura seguente descrive come segnalare un'inizializzazione corretta.

Per segnalare un di inizializzazione riuscita

  • Impostare il parametro IStatus di SetStatus su WBEM_S_INITIALIZED.

    Restituendo WBEM_S_INITIALIZED, un provider indica l'idoneità per gestire le richieste da applicazioni, WMI e altri provider. Dopo aver ricevuto WBEM_S_INITIALIZED, WMI effettua una chiamata al metodo IWbemProviderInit::QueryInterface nel provider. Questa query recupera un puntatore all'interfaccia principale del provider.

La procedura seguente descrive come segnalare un errore durante l'inizializzazione.

Per segnalare un errore durante l'inizializzazione

  • Impostare il parametro IStatus di SetStatus su WBEM_E_FAILED. WMI considera i provider delle viste che restituiscono WBEM_E_FAILED come non funzionanti.

    WMI rilascia il puntatore IWbemProviderInit dopo che WMI ha ottenuto un puntatore all'interfaccia primaria del provider o dopo che l'inizializzazione non è riuscita.

Sviluppo di un provider WMI

Impostazione dei descrittori di sicurezza del Namespace

Protezione del Provider