@vibhavp FWIW I added a FIXME in DBT_DEVICEREMOVECOMPLETE, for the CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE case because it looks like we're not doing exactly the right event sequence, and CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE is missing in the last test?
I'm not sure if both CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL and CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE should be generated from DBT_DEVICEREMOVECOMPLETE or if there's separate notifications, maybe worth investigating.