I'm not sure if anyone has experience with drivers and reading memory but, my situation is that MmCopyVirtualMemory ALWAYS returns STATUS_PARTIAL_COPY. Every single time it fails; unless Battle Eye is disabled. I've tried so many different things, like using different variables sizes and types, different addresses etc... It always returns STATUS_PARTIAL_COPY. I'm losing my mind trying to fix this. Nothing online has helped either, its not a really common error. I also tried using RtlCopyMemory and MemCpy (which rtlcopymemory is just a define of) and both fail aswell.

Full error description:
{Partial Copy} Due to protection conflicts not all the requested bytes could be copied.
My reading memory function:
Code:
DWORD64 Read(DWORD64 SourceAddress, SIZE_T Size)
{
	SIZE_T Bytes;
	NTSTATUS Status = STATUS_SUCCESS;
	DWORD64 TempRead;

	DbgPrintEx(0, 0, "\nRead Address:%p\n", SourceAddress);
	DbgPrintEx(0, 0, "Read szAddress:%x\n", Size);

	Status = MmCopyVirtualMemory(R6Process, SourceAddress, PsGetCurrentProcess(), &TempRead, Size, KernelMode, &Bytes);

	DbgPrintEx(0, 0, "Read Bytes:%x\n", Bytes);
	DbgPrintEx(0, 0, "Read Output:%p\n", TempRead);

	if (!NT_SUCCESS(Status))
	{
		DbgPrintEx(0, 0, "Read Failed:%p\n", Status);
		return NULL;
	}

	return TempRead;
}
Example of how I use it:
Code:
pNetMan = Read(BaseAddr + NET_MAN, sizeof(DWORD64));
My base address is also %100 correct. If anyone has any insight on this please help im desperate
Game: Rainbow 6
AntiCheat: Battle Eye