ObDereferenceDeviceMap
VOID __stdcall ObDereferenceDeviceMap(_EPROCESS *Process){
__int64 ProcessServerSilo;
__int64 *ServerSiloGlobals;
_ETHREAD *CurrentThread;
UINT64 v5;
_DEVICE_MAP *v6;
ProcessServerSilo = PsGetProcessServerSilo((__int64)Process);
ServerSiloGlobals = PsGetServerSiloGlobals(ProcessServerSilo);
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 243);
v5 = (UINT64)(ServerSiloGlobals + 15);
ExAcquirePushLockExclusiveEx((UINT64)(ServerSiloGlobals + 15), 0i64);
v6 = (_DEVICE_MAP *)*((_QWORD *)Process + 177);
*((_QWORD *)Process + 177) = 0i64;
ExReleasePushLockEx(v5, 0i64);
KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
if( v6 )
ObfDereferenceDeviceMap(v6);
}Referenced by:
PspAssignPrimaryToken