Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby określić typ zdarzenia urządzenia podczas przetwarzania komunikatu WM_DEVICECHANGE, sprawdź parametr wParam. Wartość wParam określa znaczenie danych specyficznych dla zdarzenia w parametrze lParam. Ogólnie rzecz biorąc, dane specyficzne dla zdarzenia identyfikują urządzenie i udostępniają dodatkowe szczegóły dotyczące zdarzenia. Format tych danych zależy od typu urządzenia, ale kilka pierwszych bajtów zawsze ma taki sam format jak struktura DEV_BROADCAST_HDR. Aby określić format danych, sprawdź element członkowski dbch_devicetype.
System emituje zdarzenie urządzenia typu DBT_DEVICEARRIVAL (czyli komunikat WM_DEVICECHANGE z wParam ustawiony na DBT_DEVICEARRIVAL) za każdym razem, gdy urządzenie zostało wstawione i jest dostępne do użycia. Aplikacje zazwyczaj sprawdzają typ urządzenia i zaczynają używać urządzenia natychmiast, jeśli jest to odpowiednie.
System emituje zdarzenie urządzenia DBT_DEVICEQUERYREMOVE, aby zażądać uprawnień do usunięcia urządzenia. Aby określić, czy urządzenie wymaga, aplikacja może wyświetlić okno dialogowe z monitem użytkownika o instrukcje. Jeśli aplikacja ustali, że potrzebuje urządzenia, może odrzucić to żądanie i anulować usunięcie, zwracając BROADCAST_QUERY_DENY. Jeśli aplikacja nie potrzebuje urządzenia, musi zwrócić true. System natychmiast wysyła komunikat DBT_DEVICEQUERYREMOVEFAILED, jeśli jakakolwiek aplikacja lub sterownik anulował poprzednie żądanie usunięcia urządzenia.
System emituje zdarzenie urządzenia DBT_DEVICEREMOVEPENDING jako ostatnie ostrzeżenie przed usunięciem urządzenia. W tym momencie aplikacja nie może anulować usunięcia, więc jeśli używa urządzenia, musi przygotować się do jego usunięcia, aby zapobiec utracie danych. Jest to szczególnie ważne w przypadku usunięcia połączenia sieciowego. Aplikacja musi określić, czy jakiekolwiek z otwartych plików lub potoków znajdują się w tym połączeniu. Może to zrobić, porównując identyfikator zasobu sieciowego w danych specyficznych dla zdarzenia komunikatu z identyfikatorami zasobów uzyskanymi wcześniej dla plików i potoków. System emituje zdarzenie urządzenia DBT_DEVICEREMOVECOMPLETE, gdy urządzenie zostało usunięte i nie jest już dostępne.
System emituje zdarzenie urządzenia DBT_QUERYCHANGECONFIG, aby zażądać uprawnienia do zmiany bieżącej konfiguracji (dock lub oddokuj). Każda aplikacja może zwrócić BROADCAST_QUERY_DENY, aby odrzucić żądanie i anulować zmianę. Jeśli aplikacja odmówi żądania, system wyśle komunikat DBT_CONFIGCHANGECANCELED. Jeśli bieżąca konfiguracja uległa zmianie ze względu na dokowanie lub oddokowany, system wysyła komunikat DBT_CONFIGCHANGED.
System emituje zdarzenie urządzenia DBT_DEVICETYPESPECIFIC za każdym razem, gdy wystąpi zdarzenie specyficzne dla urządzenia.
Sterowniki mogą tworzyć własne niestandardowe typy zdarzeń. Zdarzenia niestandardowe są wysyłane tylko do aplikacji, która została zarejestrowana na potrzeby powiadomień o zdarzeniu urządzenia na określonym urządzeniu i może być inicjowana tylko przez sterowniki trybu jądra. Aby uzyskać więcej informacji, zobacz DBT_CUSTOMEVENT.