internal static unsafe void CreateNtString(ReadOnlySpan <char> vStr, NtString *nStr) { fixed(char *str = vStr) { var encoding = Encoding.UTF8; int bytes = encoding.GetByteCount(str, vStr.Length); nStr->str = (byte *)Marshal.AllocHGlobal((bytes) * sizeof(byte)); nStr->len = (UIntPtr)bytes; encoding.GetBytes(str, vStr.Length, nStr->str, bytes); } }
public void NT_InitString(NtString *str) { Native_NT_InitString(str); }
private static extern void Native_NT_InitString(NtString *str);
public void NT_DisposeString(NtString *str) { Native_NT_DisposeString(str); }
private static extern void Native_NT_DisposeString(NtString *str);
public void NT_FreeStringArray(NtString *v_string, UIntPtr arr_size) { Native_NT_FreeStringArray(v_string, arr_size); }
private static extern void Native_NT_FreeStringArray(NtString *v_string, UIntPtr arr_size);
internal static unsafe void DisposeNtString(NtString *str) { Marshal.FreeHGlobal((IntPtr)str->str); }