ExpTimeZoneDpcRoutine
VOID __stdcall ExpTimeZoneDpcRoutine(
_KDPC *Dpc,
VOID *DeferredContext,
VOID *SystemArgument1,
VOID *SystemArgument2,
INT64 a5){
_EJOB *v9;
_EX_TIMEZONE_STATE *ExTimeZoneState;
_DWORD v11[90];
_DWORD *v12;
v12 = v11;
memset(&v11[44], 0i64, 0x61u);
if( (__int64)DeferredContext >> 47 != -1 && (__int64)DeferredContext >> 47 != 0 )
{
v11[12] = 0;
Dpc->Type = 0;
Dpc->DeferredContext = (void *)((unsigned __int64)SystemArgument2 >> 8);
*(_QWORD *)((char *)&v11[66] + 1) = SystemArgument1;
*(_QWORD *)((char *)&v11[62] + 1) = __ROL8__(DeferredContext, (char)SystemArgument1);
*(_QWORD *)((char *)&v11[48] + 1) = __ROR8__(Dpc, (char)SystemArgument1);
Dpc->SystemArgument1 = (void *)((unsigned __int64)Dpc->SystemArgument1 ^ (unsigned __int64)SystemArgument2);
Dpc->SystemArgument2 = (void *)((unsigned __int64)Dpc->SystemArgument2 ^ (unsigned __int64)SystemArgument1);
KiCustomAccessRoutine8((UINT64 *)DeferredContext);
}
ExTimeZoneState = PsGetServerSiloGlobals((_EJOB *)DeferredContext)->ExTimeZoneState;
if( _InterlockedIncrement(&ExTimeZoneState->OkToTimeZoneRefresh) == 1 )
{
if( !PsIsHostSilo(v9) )
ObfReferenceObjectWithTag(DeferredContext, 0x53707845ui64);
ExQueueWorkItem(&ExTimeZoneState->TimeZone.WorkItem, DelayedWorkQueue);
}
}Referenced by:
No references.