h6. [[WindowManager]] h6(. » [[WindowManager Messages|Messages]] h6((. » [[Message Codes|Message Codes]] h6(((. » Message_RAMTransmit h2. Message_RAMTransmit h5. (Code &7) |_\2<^. Message Block | |>^. +20|<^. Pointer to buffer where receiver should put data| |>^. +24|<^. Size of buffer| h4. Use Tasks should send this message in response to receiving a [[Message_RAMFetch]] message, and after subsequently writing the data to the given buffer, using [[Wimp_TransferBlock]]. h4. Notes Since you cannot guarantee that the buffer offered is large enough for all your data, you should keep a record (across [[Wimp_Poll]]s) of how much data has been transmitted so far. If the number of bytes written doesn't fill the buffer, then this will be the last message in the dialoge. You should not expect a reply, sending it as a [[User_Message]]. If the buffer does get filled, then you should send this message as a [[User_Message_Recorded]] and expect further Message_RAMFetch messages. Possible responses from the data-saving tasks: * It sends Message_RAMTransmit (data successfully written to specified buffer) * It does not reply (memory transfer not supported/error writing data) Possible responses from the data-loading task: * It send another Message_RAMFetch message (request more data) * It does not reply (error reading data / transfer finished) If this message returns unanswered as a [[User_Message_Acknowledge]], then you should abort the data transfer and report an error. h4. See also * [[Message Codes]] * [[Message_RAMFetch]] * [[User_Message_Acknowledge]] * [[User_Message_Recorded]] * [[Wimp_Poll]] * [[Wimp_SendMessage]] * [[Wimp_TransferBlock]]