libvmi/libvmi — pull request #221 by tklengyel (2014-11-19 15:31:38+00:00)
Title: Pass the page pointer to the user

For performance critical applications the additional memcpy operation involved in reading data from mapped pages is undesirable. By passing the pointer to the user to the mapped page held by LibVMI, the user can take charge of accessing the data contained within that page and issuing memcpy only when necessary.

The operation in which this pointer is usable is by issuing a vmi_page_table_lookup_extended, which returns the page_info_t structure and the mapped page of the resulting physical address.

As the comment in the header describes, the pointer is only valid as long as the user does not use any of the LibVMI API that may result in page getting unmapped. This is a reasonable situation that power users can arguably work with.