ExpCreateCrossVmEvent
INT64 __fastcall ExpCreateCrossVmEvent(_QWORD *a1, UINT64 a2, INT64 a3, UINT64 a4, INT64 a5, INT64 a6, CHAR a7){
struct EX_RUNDOWN_REF *v8;
unsigned int v9;
unsigned int v11;
UINT64 ExtensionTable;
int v13;
__int64 v15;
v15 = 0i64;
v8 = ExpCrossVmIntExtensionHostRoot;
v9 = a4;
v11 = a2;
if( !a6 )
v8 = ExpCrossVmIntExtensionHostGuest;
ExtensionTable = ExGetExtensionTable(v8);
if( ExtensionTable )
{
v13 = (*(__int64(__fastcall **)(__int64 *, _QWORD, INT64, _QWORD, INT64, INT64, CHAR))(ExtensionTable + 8))(
&v15,
v11,
a3,
v9,
a5,
a6,
a7);
if( v13 >= 0 )
*a1 = v15;
ExReleaseExtensionTable(v8);
}
else
{
return(unsigned int)-1073741822;
}
return(unsigned int)v13;
}Referenced by:
NtCreateCrossVmEvent