Freigeben über


Geräteereignistypen

Um den Geräteereignistyp bei der Verarbeitung einer WM_DEVICECHANGE Nachricht zu ermitteln, überprüfen Sie den wParam--Parameter. Der Wert von wParam bestimmt die Bedeutung der ereignisspezifischen Daten im lParam--Parameter. Im Allgemeinen identifizieren die ereignisspezifischen Daten das Gerät und enthalten zusätzliche Details zum Ereignis. Das Format dieser Daten hängt vom Gerätetyp ab, aber die ersten Bytes weisen immer das gleiche Format wie die DEV_BROADCAST_HDR Struktur auf. Um das Format der Daten zu bestimmen, überprüfen Sie das dbch_devicetype Mitglied.

Das System sendet ein Geräteereignis vom Typ DBT_DEVICEARRIVAL (d. h. eine WM_DEVICECHANGE Nachricht mit wParam- auf DBT_DEVICEARRIVAL festgelegt) wann immer ein Gerät eingefügt wurde und zur Verwendung verfügbar ist. Anwendungen überprüfen in der Regel den Gerätetyp, und beginnen Sie sofort mit der Verwendung des Geräts, falls dies erforderlich ist.

Das System sendet ein DBT_DEVICEQUERYREMOVE Geräteereignis, um die Berechtigung zum Entfernen eines Geräts anzufordern. Um festzustellen, ob das Gerät benötigt wird, kann eine Anwendung ein Dialogfeld anzeigen, um den Benutzer zur Eingabe von Anweisungen aufzufordern. Wenn eine Anwendung feststellt, dass es das Gerät benötigt, kann sie diese Anforderung verweigern und die Entfernung abbrechen, indem sie BROADCAST_QUERY_DENY zurückgibt. Wenn die Anwendung das Gerät nicht benötigt, muss es TRUE-zurückgeben. Das System sendet sofort eine DBT_DEVICEQUERYREMOVEFAILED Nachricht, wenn eine anwendung oder ein Treiber eine vorherige Anforderung zum Entfernen eines Geräts abgebrochen hat.

Das System sendet ein DBT_DEVICEREMOVEPENDING Geräteereignis als letzte Warnung, bevor ein Gerät entfernt wird. An diesem Punkt kann die Anwendung das Entfernen nicht abbrechen. Wenn sie also das Gerät verwendet, muss sie sich auf die Entfernung vorbereiten, um Datenverluste zu verhindern. Dies ist besonders wichtig, wenn eine Netzwerkverbindung entfernt wird. Die Anwendung muss bestimmen, ob sich eine der geöffneten Dateien oder Rohre in dieser Verbindung befinden. Dazu kann der Netzwerkressourcenbezeichner in den ereignisspezifischen Daten der Nachricht mit den zuvor für die Dateien und Pipes abgerufenen Ressourcenbezeichner verglichen werden. Das System sendet ein DBT_DEVICEREMOVECOMPLETE Geräteereignis, wenn ein Gerät entfernt wurde und nicht mehr verfügbar ist.

Das System sendet ein DBT_QUERYCHANGECONFIG Geräteereignis, um die Berechtigung zum Ändern der aktuellen Konfiguration anzufordern (Dock oder Ausdocken). Jede Anwendung kann BROADCAST_QUERY_DENY zurückgeben, um die Anforderung zu verweigern und die Änderung abzubrechen. Wenn eine Anwendung die Anforderung verweigert, sendet das System eine DBT_CONFIGCHANGECANCELED Nachricht. Wenn sich die aktuelle Konfiguration geändert hat, sendet das System aufgrund eines Docks oder Rückgängigmachens eine DBT_CONFIGCHANGED Nachricht.

Das System sendet ein DBT_DEVICETYPESPECIFIC Geräteereignis, wenn ein gerätespezifisches Ereignis auftritt.

Treiber können eigene benutzerdefinierte Ereignistypen erstellen. Benutzerdefinierte Ereignisse werden nur an Anwendungen gesendet, die für die Geräteereignisbenachrichtigung auf einem bestimmten Gerät registriert sind und nur von Kernelmodustreibern initiiert werden können. Weitere Informationen finden Sie unter DBT_CUSTOMEVENT.