I probably found a bug in a intel graphics driver.
DirectX 9 documentation clearly states: 'All methods that derive from IUnknown are guaranteed to work after a device is lost.'
A DirectX application running on my computer with the following configuration crashes when calling ID3DXSprite::End on a lost device.
Intel Core i3 (2.93GHz)
Gigabyte H55M-D2H Mainboard
using onboard graphics
Windows XP Professional
You can easily reproduce that with running a sample from the DirectX SDK:
SimpleSample.exe -forceapi:9 -fullscreen -width:1024 -height:768
It's important to select a screen resolution which differs from the desktop resolution!
Now press Alt-Tab -> Access violation while calling ID3DXSprite::End on the device which is lost now.
Adding another graphics card (NVidia) to this computer and running the sample application on that device works fine.
Thanks for your feedback,