Funkcja Win32 API do programowego włączania / wyłączania urządzenia

Piszę małą aplikację C #, aby wyłączyć urządzenie (mój touchpad na laptopa), gdy wykryte zostanie inne urządzenie myszy, i ponownie włączyć touchpad, jeśli mysz nie zostanie wykryta. Nie jestem nawet w stanie wyłączyć touchpada w menedżerze urządzeń (działa na domyślnym sterowniku klasy myszy).

Wchodzę w rozwój sterowników urządzeń, więc pomyślałem, że mógłbym napisać mały sterownik filtru, który po prostu zaakceptowałby IOCTL, aby włączyć i wyłączyć przekazywanie komunikatów zdarzeń myszy do stosu urządzeń, i otrzymywać wiadomości z trybu użytkownika za pomocą surowego PDO. Jednak,Zadałem to pytanie i ktoś zasugerował, że mogę to zrobić w trybie użytkownika za pośrednictwemSetupDi .. Funkcje. To byłoby naprawdę dobre, ponieważ ta surowa metoda komunikacji PDO jest PITA do współpracy.

Użyłem tylkoSetupDiGetClassDevs wcześniej, a jest ich tak wiele, czy ktoś z większym doświadczeniem w tej części interfejsu API Win32 po prostu powie mi szybko, jak powinienem zadzwonić, aby zatrzymać / wyłączyć urządzenie myszy lub jego interfejs lub jeśli jest coś gdzieś w ciemności rogi szkieletu, który to zrobi (być może w WMI?).

Aktualizacja (24.09.09) Wymyśliłem, jak to zrobić za pomocą sterownika filtra i opublikowałem, jak to zrobiłemmoje pierwotne pytanie. Nadal chcę wiedzieć, czy można włączyć lub wyłączyć urządzenia bezpośrednio z Win32, a jeśli tak, to w jaki sposób - więc zostawię to pytanie otwarte.

questionAnswers(3)

yourAnswerToTheQuestion