To ale není zdůvodnění.
Ovladač zvukovky se má starat o zvuk. Hlasitost a jiný nastavení má dostat befelem odjinud. Není tam proto, aby lezl jinam.
Klávesnici má mít na starost jiný ovladač. A je věc vrstev nad tím, aby při příslušným kódu klávesy zjistily, že je třeba provést akci "volume up" a informovaly ovladač zvukovky.
A už z principu, co je ovladači zvukovky po tom, jestli mám nebo nemám multimediální klávesnici a jaký je její typ? A proč tak vytváří závislost oddělených bloků HW mezi sebou? A proč zvyšuje riziko chyby zvukovky o chybu klávesnice? A proč widle vůbec pustí jeden ovladač, aby zasahoval do kompetencí jinýho (tj. jak to, že se neporvou)? A proč, pokud to chytá za ovladačem KB, Widle umožní hodit hook na klávesnici ještě před zpracováním v systému?
Pokud používají k výpisu mj. funkci OutputDebugString, znamená to, že vlastní zachytávání kláves zřejmě nedělá ovladač, ale právě aplikace, která s ním následně komunikuje. Ledaže by se jednalo o usermode ovladač, ale vzhledem k tomu, že v článku doporučují smazt/prejmenovat EXE soubor, nevypadá to na tento případ.
Pro ladící výpisy z jádra se používá DbgPrint/DbgPrintEx a dělat z něj výpis do souboru sice je možné, ale ne tak pohodlné jako z aplikace.