You can use RawInput to distinguish input from multiple devices. It allows to retrieve device VendorID and ProductID which is unique for diffrenet devices, but it will be same for same devices (like two identical keyboards), altrough it also provides device GUID (in system, it's unique for system as i understand or something like this) and some other data that will help distinguish input even from two identical devices.
You can retrieve VID&PID of your RFID-scanner and compare all input message with it, only catching symbols from your device.
Additionaly i suppose your RFID-scanner inputs data realy fast, so you can just measure time which was used to input whole stroke of symbols and distinguish RFID-scanner from keyboard without knowing it's VID&PID pair.
To remove unwanted input you can use window hooks.
Almost forgot, microsoft developed some framework for POS devices, but it's for .NET, it's called POS for .NET. Maybe it will help, in my case i can't use it.
P.S.: I'm currently solving this puzzle myself, but with Barcode scanner (Reading barcode scanner input without knowing VID&PID)