Intercepting usb data coming form a device

Hello NTdevs,

For a POC I want to do, I’m looking for a way to intercept data coming from
a usb device, like keyboard, and change it by a filter driver or something
similar.

Can someone give some direction for how that can be done ?
Can I use umdf for that?

Any ideas will really help.

Thx,
Idan