http://bugs.winehq.org/show_bug.cgi?id=12242
--- Comment #4 from Juan Lang juan_lang@yahoo.com 2008-03-30 22:55:13 --- (In reply to comment #3)
As you can see the interface 0x13ef10 is never created, yet PhoenixRC tries to delete it twice and passes 0x3a (also never created) as the HDEVINFO handle. I don't know if this is a bug (feature?) in PhoenixRC, but I'll patch SetupDiDeleteDeviceInterfaceRegKey so that it won't page fault on a bad pointer (Windows does not, it returns FALSE and an error code).
You don't think it's just a bug in setupapi? Notice that SetupDiDestroyDeviceInfoList is called just before these bogus handles are passed to SetupDiDeleteDeviceInterfaceRegKey. The following call path could produce that: SetupDiDestroyDeviceInfoList SETUPDI_FreeDeviceInfo SETUPDI_FreeInterfaceInstances SetupDiDeleteDeviceInterfaceRegKey
You might try Alexander Morozov's patches instead, they seem to address some bogus pointer bug in setupapi.