Предоставляется ли возможным хоть как-то отличить эмуляцию нажатий кнопок от реальных нажатий, в 3 кольце? или хотя бы в нулевом?
В ring0 ставь фильтр на клавиатурный класс (за примером в ddk). Там получишь только реальные нажатия на клавиши.
Можно через низкоуровневые хуки на клаву и мышь - в случае программной эмуляции в поле flags в передаваемых структурах д.б. установлен флаг ..._INJECTED
А эмлировать из ринг0 можно и как? Вопрос такой потому что из третьего кольца только треть kbd_event отрабатывает(
по ринг0 поясните пожалуйста подводные грабли shadow sdt хуков в принципе (особенно в сотвестимости с х64), а в частости, NtUserSendInput.
а как быть с тем, когда ставят хук на WH_JOURNALPLAYBACK? Такие события вообще никак не палятся в низкоуровневых хуках на клавиатуру и мышь.