IWbemObjectSink::Indicate-Methode (wbemcli.h)
Die Indicate-Methode wird von einer Quelle aufgerufen, um eine Benachrichtigung bereitzustellen. In der Regel ruft WMI die Clientimplementierung dieser Schnittstelle auf, nachdem der Client eine der asynchronen Methoden von IWbemServices ausgeführt hat. In anderen Fällen rufen verschiedene Anbietertypen eine von WMI exportierte Implementierung auf, um Ereignisse zu übermitteln. Daher muss Clientcode diese Schnittstelle in einigen Fällen implementieren und in anderen Fällen die Implementierung einer anderen Komponente verwenden.
Verwenden Sie diese Schnittstelle und Methode in Verbindung mit den asynchronen Methoden der IWbemServices-Schnittstelle .
Clients und Anbieter müssen diese Schnittstelle implementieren, um Benachrichtigungen zu empfangen oder die asynchronen Methoden von IWbemServices auszuführen. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Syntax
HRESULT Indicate(
[in] long lObjectCount,
[in] IWbemClassObject **apObjArray
);
Parameter
[in] lObjectCount
Anzahl der Objekte im folgenden Array von Zeigern.
[in] apObjArray
Array von Zeigern auf IWbemClassObject-Schnittstellen . Der Arrayspeicher selbst ist schreibgeschützt und gehört dem Aufrufer der -Methode. Da es sich hierbei um einen in-Parameter handelt, hat die Implementierung die Möglichkeit, IWbemClassObject::AddRef für einen beliebigen Objektzeiger im Array aufzurufen und vor der Rückgabe festzuhalten, ob die Objekte nach der Rückgabe der Methode gemäß COM-Regeln verwendet werden. Wenn die -Objekte nur für die Dauer des Aufrufs "Angeben" verwendet werden, müssen Sie AddRef nicht für jeden Objektzeiger aufrufen.
Rückgabewert
Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. Die folgende Liste listet den Wert auf, der in einem HRESULT enthalten ist.
Hinweise
Rufen Sie beim Implementieren einer Ereignisabonnementsenke (IWbemObjectSink oder IWbemEventSink) WMI nicht aus der Indicate-Methode für das Senkenobjekt auf. Beispielsweise kann das Aufrufen von IWbemServices::CancelAsyncCall innerhalb einer Implementierung von Indicate den WMI-Zustand beeinträchtigen. Legen Sie zum Kündigen eines Ereignisabonnements ein Flag fest, und rufen Sie IWbemServices::CancelAsyncCall aus einem anderen Thread oder Objekt auf. Für Implementierungen, die sich nicht auf eine Ereignissenke beziehen, z. B. Objekt-, Enumerations- und Abfrageabrufe, können Sie Rückrufe an WMI ausführen.
Senkenimplementierungen sollten die Ereignisbenachrichtigung innerhalb von 100 ms verarbeiten, da der WMI-Thread, der die Ereignisbenachrichtigung übermittelt, keine anderen Aufgaben ausführen kann, bis das Senkenobjekt die Verarbeitung abgeschlossen hat. Wenn die Benachrichtigung einen großen Verarbeitungsumfang erfordert, kann die Senke eine interne Warteschlange für einen anderen Thread verwenden, um die Verarbeitung auszuführen.
Wenn ein Ereignisanbieter Angeben aufruft, um ein Ereignis bereitzustellen, kann der Aufruf mit WBEM_E_SERVER_TOO_BUSY fehlschlagen. Der Anbieter kann auf diese Nachricht reagieren, indem er das Ereignis erneut auslöst.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | wbemcli.h (include Wbemidl.h) |
Bibliothek | Wbemuuid.lib |
DLL | Fastprox.dll |