Re: Is this a fault of Microsoft???

Sorry for late reply.
This is a known issue to MS and only specific to W2K and XP. (reason seems
to be separation of PNP and Power management modules). To overcome this
problem, in power up IRP, check the port status through
IOCTL_INTERNAL_USB_GET_PORT_STATUS (as you are doing) and if device is not
present then ask PNP manager to send device remove irp, in which you can
remove the device gracefully.

Mind it, if some application is constantly polling your device then for
first 4-5 seconds, application will get device present status (this time
taken by power up irp to reach your driver).

Hoping that this not too late and will help.