internal static byte[] GetEntryRaw(string name) { UIntPtr size; byte[] namePtr = CreateUTF8String(name, out size); UIntPtr stringSize = UIntPtr.Zero; ulong lastChange = 0; IntPtr ret = Interop.NT_GetEntryRaw(namePtr, size, ref lastChange, ref stringSize); if (ret == IntPtr.Zero) { ThrowException(name, namePtr, size, NtType.Raw); } byte[] data = GetRawDataFromPtr(ret, stringSize); Interop.NT_FreeCharArray(ret); return(data); }
internal static byte[] GetEntryRaw(string name, byte[] defaultValue) { UIntPtr size; byte[] namePtr = CreateUTF8String(name, out size); UIntPtr stringSize = UIntPtr.Zero; ulong lastChange = 0; IntPtr ret = Interop.NT_GetEntryRaw(namePtr, size, ref lastChange, ref stringSize); if (ret == IntPtr.Zero) { return(defaultValue); } else { byte[] data = GetRawDataFromPtr(ret, stringSize); Interop.NT_FreeCharArray(ret); return(data); } }