Also, in some research I learned that the DirectSound guid to Wave ID function can sometimes return success without writing to the output struct at all. I added a check to initialize and bail if this happens. This can possibly help with some of our USB issues.