With Plug N Play printer device through USB on WIndows11 OS, We are facing an issue regarding USBPRINT port creation and metadata (Device info) creation in registry.
Generally if any Plug N Play USBPRINT device is plugged to the PC, registry entries(like Device parameters) should be created under following registry path,
"Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}"
for e.g., (Reference from Win10)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}##?#USB#VID_08A6&PID_8053&MI_00#6&27e1620&1&0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}]
"DeviceInstance"="USB\VID_08A6&PID_8053&MI_00\6&27e1620&1&0000"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}##?#USB#VID_08A6&PID_8053&MI_00#6&27e1620&1&0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}#]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}##?#USB#VID_08A6&PID_8053&MI_00#6&27e1620&1&0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}#\Device Parameters]
"Port Number"=dword:00000001
"Port Description"="xxxxxxxxxxxxx"
"Base Name"="USB"
"Serial Number"="xxxxxxxxx "
"Interface Number"=dword:00000000
However, on Windows11 OS "Port Description", "Base Name", "Serial Number", "Interface Number" is not getting created.
We analyzed USB data packets and found the required device parameters data has been sent to the PC, however the registries are not getting created in Windows11 unlike in Windows10.
Since we are using Setup API(SetupDiGetClassDevs,SetupDiEnumDeviceInterfaces,SetupDiGetDeviceInterfaceDetail) to enumerate and get the details related to our device, we are facing issue to find our device(we filter our device using Port description which is not creating in Win11) because of incomplete registries creation under "Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}"
Could you please let us know why the registries not getting created even though our device sending the device parameters properly as requested by generic driver? Are there any design changes or Microsoft will correct this behavior?