Additionally, you can .GetRawPointer() instead of using GetString()...  Since you specify the length explicitly, we don't care that the internal buffer is potentially larger and not null-terminated.