When I started looking into FFI, I found this page https://github.com/ffi/ffi/wiki/Windows-Examples#wiki-intermediate (look for the Unicode example). Note they're using `:buffer_in` for the wide character string, since it typically contains embedded nulls. I did something similar when I started looking into [ffi'ing puppet code](https://github.com/joshcooper/puppet/commit/7bf1465fccc434c34c56f441bae243936f94784b#diff-a91b066f285a8fe7ccfa4162399d458fR43). I'm surprised that `:pointer` works, I wonder what the difference is from the ffi perspective.