http://bugs.winehq.org/show_bug.cgi?id=18015
--- Comment #6 from H. Verbeet hverbeet@gmail.com 2009-04-13 14:17:32 --- Is the demo supposed to have the same issue? It seems to work for me. Going by the logs, it appears to crash after the HeapAlloc() call in IWineD3DImpl_CreateDevice(), but before the "Created WineD3DDevice object @ %p\n" TRACE. The only way I can see that happen is if ppReturnedDeviceInterface would be an invalid pointer, but that's assigned as &wineD3DDevice in DDRAW_Create(). You could try to add some traces to IWineD3DImpl_CreateDevice() to verify that's the place it crashes (eg. print object and ppReturnedDeviceInterface right after the HeapAlloc() call).
I also noticed a different exception caused by a call to IoQueryDeviceDescription() earlier in the log. That's probably unrelated, but please try with a clean Wine prefix to rule that out as the cause.