A lo que me refiero es:
Código
En el puntero al buffer le pasas un puntero al puntero del buffer, igual con CreateRemoteThread. Además pasas un puntero de la variable que contiene el tamaño de la cadena cuando debes de pasar la cadena.
Ret = WriteProcessMemory(Process_Info.hProcess, &Virtual, &DllLen, DllLen, NULL);
Código
Ret = WriteProcessMemory(Process_Info.hProcess, Virtual, &Dll_Name, DllLen, NULL);
Saludos!