Raw pdo generates multiple entries to the registry

Hi,

Our keyboard upper filter driver creates a raw pdo {C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}\WirelessKeyboardFilter according to the WDK sample code. Each time when the keyboard device unplug and plug, the raw pdo is created and a new registry entry is created under the following path:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses

Example Key:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{0ca0380c-ccc7-4c63-9a70-a19ab6e7e2a4}]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{0ca0380c-ccc7-4c63-9a70-a19ab6e7e2a4}##?#{C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}#WirelessKeyboardFilter#9&2fa270e1&0&01#{0ca0380c-ccc7-4c63-9a70-a19ab6e7e2a4}]
“DeviceInstance”=“{C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}\WirelessKeyboardFilter\9&2fa270e1&0&01”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{0ca0380c-ccc7-4c63-9a70-a19ab6e7e2a4}##?#{C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}#WirelessKeyboardFilter#9&2fa270e1&0&01#{0ca0380c-ccc7-4c63-9a70-a19ab6e7e2a4}#]
##?#{C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}#WirelessKeyboardFilter#9&2fa270e1&0&01#{62840be0-ba06-4041-86b4-09a90226d07c}
Device Instance=” {C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}\WirelessKeyboardFilter\9&2fa270e1&0&01”

Some of our clients feedbacks that there’re 600,000 such entries which slows down their machine’s rebooting.

Are there any approaches to mitigate this and create the entry as less as possible?

Thanks,
Marshall