RtlpCtContextInit
NTSTATUS __stdcall RtlpCtContextInit(INT64 *a1, INT64 a2){
unsigned int v2;
VOID **PoolWithTag;
INT8 **v5;
int v6;
*a1 = 0i64;
v2 = a2;
PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x18ui64, 1735672676i64);
v5 = (INT8 **)PoolWithTag;
if( !PoolWithTag )
return -1073741670;
*(_OWORD *)PoolWithTag = 0i64;
PoolWithTag[2] = 0i64;
v6 = RtlpCtInitializeNotificationEvent((_KEVENT **)PoolWithTag + 2);
if( v6 < 0
|| (v6 = RtlpCtInitializeWorkItem(v5, (INT64)v5), v6 < 0)
|| (v6 = ExSubscribeWnfStateChange(
v5 + 1,
(INT64 *)&WNF_SEB_DEV_MNF_CUSTOM_NOTIFICATION_RECEIVED,
8i64,
v2,
(INT64)RtlpRtlpCtSelfSubscribeCallback,
(INT64)v5),
v6 < 0) )
{
RtlpCtContextFree(v5);
}
else
{
*a1 = (INT64)v5;
}
return v6;
}Referenced by:
RtlRaiseCustomSystemEventTrigger