Better error reporting in Windows version, used smart pointers in windows version of DeviceINQ