We use the term Remote Procedure Call here to mean any type of procedure call between one process and another. All of the remote procedure calls we're talking about here (up to now) are all really between processes on the same machine, not across machines.
This greatly simplifies the security aspects of this design, since ClientAuthentication is much simpler when clients are local on the same machine.
Normal (synchronous) remote procedure calls are performed by:
Asynchronous remote procedure calls are performed similarly, but the return result is sent later.
Server validates the request, assigns it an AsyncRequestId, and queues it for execution
Server packages the AsyncRequestId (or error return)
Server performs the request specified by the AsyncRequestId
Server sends return results to client as an AsyncEventMessage
Client reads AsyncEventMessage to learn the real return result from the request.
The process of "packaging up arguments into a big blob" and doing the unpackaging goes by various names. Common names include marshalling/demarshalling, pickling, or serializing.