sometimes you need to change to a process multiple times for it to fix.
physical memory is mainly used in a second instance of ce next to another one(so usually doesn't require this)

and this is why bsod information helps instead of saying it just bsod's. my guess is that you get a pagefault in nonpaged area exception, instead of an integrity violation error.
you can bypass that without physical memory by editing the pagetable entry and mark it writable before writing

best in the driver, but you can do it in memorybrowser as well, or write a hook on writeProcessMemory (you can even fix it with lua using a wpm hook)

before you write to an address do the calculation: PTE=$fffff68000000000+(((address and $0000ffffffffffff) shr 12)*8)
then read the byte from that address, and set bit 1 to true. : bytevalue:=bytevalue or 2; and write that to the page table entry
then you can write the page

in the driver you might also be able to just unset the WP bit (bit 16) in CR0, so it won't generate write protect pagefaults in kernelmode, but you must disable interrupts before doing that (cli) and when done restore them (sti)
And make sure you restore the WP bit in CR0 back to the original state