#ifndef __VIRTUAL_MACHINE_H
#define __VIRTUAL_MACHINE_H

#include "Windas.h"
#include "XedWrap.h"

typedef struct _VM_DATA
{
	PVOID RegisterFile[32];
}VM_DATA, *PVM_DATA;

/*
* VmEnter:
* Move all x86 8 byte registers into storage inside of VM_DATA structure.
* Move address of VM_DATA structure into rcx
* Move virtual instruction pointer into rdx
*/
PUCHAR VmEmitVmEnter(PULONG Size);
PUCHAR VmEmitVmExit(PULONG Size);

#endif