NtCreateEvent
NTSTATUS __fastcall NtCreateEvent(UINT64 a1, UINT64 a2, INT64 a3, UINT64 a4, UINT8 a5){
INT8 v5;
unsigned int v6;
_QWORD *v7;
unsigned __int8 v8;
NTSTATUS result;
VOID *Flags;
UINT64 Flagsa;
UINT64 ObjectBodySize;
UINT64 PagedPoolCharge;
UINT64 NonPagedPoolCharge;
PRKEVENT Event;
PVOID Handle;
v5 = a4;
v6 = a2;
v7 = (_QWORD *)a1;
Event = 0i64;
Handle = 0i64;
v8 = KeGetCurrentThread()->$87BC921A506A176A34DE473FC146A343::gap0[10];
if( v8 )
{
if( a1 >= 0x7FFFFFFF0000i64 )
a1 = 0x7FFFFFFF0000i64;
*(_QWORD *)a1 = *(_QWORD *)a1;
}
if( (unsigned int)a4 > 1 )
return -1073741811;
LODWORD(NonPagedPoolCharge) = 0;
LODWORD(PagedPoolCharge) = 0;
LODWORD(ObjectBodySize) = 24;
result = ObCreateObjectEx(
v8,
(_OBJECT_TYPE *)ExEventObjectType,
(_OBJECT_ATTRIBUTES *)a3,
v8,
Flags,
ObjectBodySize,
PagedPoolCharge,
NonPagedPoolCharge,
(VOID **)&Event,
0i64);
if( result >= 0 )
{
KeInitializeEvent((INT64)Event, v5, a5);
LODWORD(Flagsa) = 0;
result = ObInsertObjectEx(Event, 0i64, v6, 0i64, Flagsa, 0i64, &Handle);
LODWORD(Event) = result;
if( result >= 0 )
*v7 = Handle;
}
return result;
}Referenced by:
FsRtlInitializeSmssEvent
IoInitSystemPreDrivers
PfSnOpenVolumesForPrefetch
PfSnPopulateReadList
PfSnPrefetchMetadata
SepAdtOpenEtwReadyEvent