better use msg_buf rather than hmsg_buffer