On 1 February 2014 19:09, Richard Copley <rcopley@gmail.com> wrote:

It looks to me as though "filename_to_utf16" is not returning utf16 data (which is what it sounds like it should do):
No, sorry. I didn't notice the L prefix:
(gdb) p rootname_w
$2 = L"c:\\\0[...]"
... which is correct.
Perhaps some problem with type-punning LARGE_INTEGER/ULARGE_INTEGER under -fstrict-aliasing. I can't say I understand that stuff very well, and I admit it doesn't seem very likely, but I'll see if I can get it to work without the casting.