Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Funktionsermittlung ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.]
Empfängt alle Add-, Remove- oder Updateereignisse während einer Benachrichtigung.
Syntax
HRESULT OnEvent(
[in] DWORD dwEventID,
[in] FDQUERYCONTEXT fdqcQueryContext,
[in] const WCHAR *pszProvider
);
Parameter
[in] dwEventID
Art des Ereignisses.
| Wert | Bedeutung |
|---|---|
|
Die Suche wurde von einem Anbieter abgeschlossen. In der Regel wird diese Benachrichtigung von Netzwerkprotokollanbietern gesendet, in denen das Protokoll ein definiertes Intervall angibt, in dem Suchergebnisse akzeptiert werden. Sowohl der WSD- als auch der SSDP-Anbieter verwenden diesen Ereignistyp.
Sobald diese Benachrichtigung gesendet wurde, ignoriert eine Abfrage alle eingehenden Antworten auf die anfängliche Such- oder Testanforderung. Die Abfrage überwacht jedoch weiterhin auf Hello- oder Bye-Nachrichten (die verwendet werden, um anzugeben, wann ein Gerät hinzugefügt oder entfernt wird). Die Abfrage wird weiterhin auf diese Ereignisse überwacht, bis Release für das Abfrageobjekt aufgerufen wird. Diese Benachrichtigung wird nicht gesendet, wenn ein schwerwiegender Fehler auftritt. Informationen dazu, wie dieses Ereignis von einem bestimmten Anbieter implementiert oder verwendet wird, finden Sie unter dem Link zur Anbieterdokumentation aus dem Thema Integrierte Anbieter . |
|
Wird nicht von Funktionsermittlungsclients verwendet. |
|
Wird nicht von Funktionsermittlungsclients verwendet. |
|
Die IP-Adresse der NIC wurde geändert. Der WSD-Anbieter implementiert diese Benachrichtigung. Ereignisse können gesendet werden, wenn ein Energieereignis auftritt (z. B. wenn der Computer aus dem Ruhezustand aufwacht) oder wenn ein Laptop roamingt.
Hinweis Dieser Wert ist nicht für die Verwendung unter Windows Vista verfügbar. Es ist unter Windows Vista mit SP1, Windows Server 2008 und nachfolgenden Versionen des Betriebssystems verfügbar.
|
[in] fdqcQueryContext
Der für Änderungsbenachrichtigung registrierte Kontext. Der Typ FDQUERYCONTEXT wird als DWORDLONG definiert. Dieser Parameter kann NULL sein.
[in] pszProvider
Der Name des Anbieters.
Rückgabewert
Die Implementierung der OnEvent-Methode im Clientprogramm sollte einen der folgenden HRESULT-Werte an den Aufrufer zurückgeben.
| Rückgabecode | BESCHREIBUNG |
|---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Der Wert eines der Eingabeparameter ist ungültig. |
Hinweise
Funktionsermittlungsanbieter (SSDP und WSD) verwenden diese Methode, um Benachrichtigungen zu implementieren, dass ein Suchdurchlauf abgeschlossen ist.
Rufen Sie Release nicht für das Abfrageobjekt aus dieser Methode auf. Dies kann zu einem Deadlock führen. Wenn Release für ein Abfrageobjekt aus einem anderen Thread aufgerufen wird, während ein Rückruf ausgeführt wird, wird das Objekt erst freigegeben, wenn der Rückruf abgeschlossen ist.
Alle Benachrichtigungen, die von Anbietern an die Funktionsermittlung übergeben werden, werden in die Warteschlange gestellt und einzeln an den Client zurückgegeben. Rückrufe werden synchronisiert, sodass ein Client jeweils nur eine Benachrichtigung empfängt.
Da andere IFunctionDiscoveryNotification-Methodenaufrufe in anderen Threads ausgeführt werden können, müssen alle Änderungen am Threadzustand während des Aufrufs wiederhergestellt werden, bevor die Methode beendet wird.
Beispiele
Das folgende Beispiel zeigt eine OnEvent-Handlerimplementierung. Die CMyNotificationListener-Klasse ist im Thema IFunctionDiscoveryNotification definiert.
#include <windows.h>
HRESULT CMyNotificationListener::OnEvent(
IN DWORD dwEventID,
IN FDQUERYCONTEXT fdqcQueryContext,
IN const WCHAR * pszProvider
)
{
HRESULT hr = S_OK;
HANDLE hSearchComplete = INVALID_HANDLE_VALUE;
hSearchComplete = OpenEventW( EVENT_ALL_ACCESS,
FALSE,
L"SearchComplete" );
if( NULL == hSearchComplete )
{
return hr;
}
if( FD_EVENTID_SEARCHCOMPLETE == dwEventID )
{
SetEvent( hSearchComplete );
}
CloseHandle( hSearchComplete );
return hr;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
| Zielplattform | Windows |
| Kopfzeile | functiondiscoveryapi.h |