Gerätebenachrichtigungen
Das System überträgt eine Reihe von Standardereignissen für Geräteänderungen an alle Anwendungen und Dienste. Sie müssen sich nicht registrieren, um diese Standardereignisse zu empfangen. Weitere Informationen finden Sie im Abschnitt "Hinweise" unter RegisterDeviceNotification. Verwenden Sie die RegisterDeviceNotification-Funktion, um andere Ereignisse anzugeben, die Ihre Anwendung oder Ihr Dienst empfangen soll.
Wenn eine Anwendung oder ein Dienst RegisterDeviceNotification aufruft,wird auch das Fenster angegeben, in dem die Benachrichtigungsereignisse empfangen werden. Dienste können anstelle eines Fensterhandle ein Dienststatushandle angeben. Wenn ein Dienst sein Dienststatushandle angibt, empfängt sein Dienststeuerungshandler die Benachrichtigungsereignisse. Weitere Informationen finden Sie unter HandlerEx.
Achten Sie darauf, Plug & Play Geräteereignisse so schnell wie möglich zu behandeln. Andernfalls reagiert das System möglicherweise nicht mehr. Wenn Ihr Ereignishandler einen Vorgang ausführen soll, der die Ausführung blockieren kann (z. B. E/A), empfiehlt es sich, einen anderen Thread zu starten, um den Vorgang asynchron auszuführen.
Von RegisterDeviceNotification zurückgegebene Gerätebenachrichtigungshandles müssen geschlossen werden, indem die UnregisterDeviceNotification-Funktion aufgerufen wird, wenn sie nicht mehr benötigt werden.