Udostępnij przez


Używanie niestandardowych powiadomień PnP

Sterownik może użyć mechanizmu powiadamiania o zmianie urządzenia docelowego, aby otrzymywać powiadomienia o zdarzeniach niestandardowych na urządzeniu.

Programista definiujący zdarzenie niestandardowe musi wykonać następujące czynności:

  1. Zdefiniuj nowy unikalny identyfikator GUID dla zdarzenia niestandardowego.

    Wygeneruj identyfikator GUID za pomocą Uuidgen lub Guidgen (które są uwzględnione w Microsoft Windows SDK). Opublikuj identyfikator GUID w odpowiednim pliku nagłówkowym i dokumentacji.

  2. Napisz kod, aby wyzwolić zdarzenie niestandardowe.

    W trybie jądra sterownik wywołuje IoReportTargetDeviceChange z niestandardowym GUID i wskaźnikiem PDO dla urządzenia. Zdarzenia niestandardowe mogą być wyzwalane tylko z trybu jądra.

Autor sterowników używa niestandardowego powiadomienia z procedurą podobną do następującej:

  1. Sterownik (lub aplikacja) rejestruje się w celu powiadomienia o zdarzeniu niestandardowym.

    W trybie jądra sterownik wywołuje IoRegisterPlugPlayNotification i rejestruje się w EventCategoryTargetDeviceChange na urządzeniu.

    W trybie użytkownika aplikacja rejestruje się przy użyciu RegisterDeviceNotification. Aby uzyskać więcej informacji, zobacz zestaw Windows SDK.

  2. Składnik trybu jądra wyzwala zdarzenie niestandardowe.

  3. Menedżer PnP wywołuje procedury powiadomień zarejestrowane na urządzeniu.

    Menedżer PnP wywołuje zarejestrowane procedury zwrotne trybu użytkownika, a następnie wywołuje procedury zwrotne trybu jądra.

  4. Po zakończeniu powiadamiania w trybie użytkownika, procedury wywołania zwrotnego w sterowniku trybu jądra reagują na zdarzenie niestandardowe.

    Zobacz Guidelines for Writing PnP Notification Callback Routines (), aby uzyskać ogólne wytyczne dotyczące procedur wywołań zwrotnych powiadomień PnP. Oprócz tych wytycznych niestandardowa rutyna wywołania zwrotnego powiadomień nie może otwierać dojścia do urządzenia z poziomu rutynowego wątku wywołania zwrotnego.