   What Can't Survive Resetting IDirect3DDevice9*
  Simple question, what things won't survive resetting a Direct3D device? I'm going through some tutorials from DrunkenHyena and he explained that you need to free and initialize some variables when a device is lost because they don't survive the reset. However in the samples, none of them did anything with those functions. What things need to be initialized after resetting a device?   
  Have a look here. Basically, all state information, all swap chains, and all non-system memory resources must be re-initialized. Shaders do survive the reset.