There is a big difference between sending multiframe and receiving multiframe.
I decided to stay away from sending MF requests as they buy you nothing in terms of speed. However, the technique is the same as handling receipts (just the other way around).
You can send a single frame with many pids (up to 6) and that's simple but you will get a multiframe response which needs to be handled. You can use CanHacker to process MF responses but you need to set it up to do that and it's tricky.
If you send a full SF request which will result in a MF response then the first frame received will start with a one (1) to indicate this is the first frame of a MF response. You must immediately send a flow control (FC) frame to ask the responder to send the rest of the frames. That means you have sent a total of 2 frames but separated by the FF frame (not together).
After sending the FC frame you will receive the remainder of the frames (which could be many) and they may not be in the correct order. You must make sure that you put the frames together in the correct order or the message will be corrupt. Asking for the VIN is typical of a SF request that results in a MF response.
Here's an example of sending a MF message