Hi,
Also, I did not understand in the code example above: why destAddress for map call is 0x00100000? What is that magic number? I thought that I should allocate in rosalina process some buffer and pass its address to map svc call.
0x00100000 is the virtual address where programs (their .text+.rodata+.data+.bss) usually start (except for loader, ro, and rosalina which start at VA 0x14000000. In this case this is where the mapped process memory is mapped and it could be any arbitrary page-aligned address indeed.
Also please not that those svcGetProcessInfo "IDs" and svc(Un)MapProcessMemoryEx are Luma-only syscalls (fwiw).