GetOverlappedResult() might never return with some drivers. Time out after 1000 ms. We cannot really fix this without either: 1) Controlling the streaming thread so we can do CancelIo() from that thread. 2) Switch to using IO completion ports.