CmpLockTwoSecurityCachesExclusiveShared
VOID __stdcall CmpLockTwoSecurityCachesExclusiveShared(_CMHIVE *CmHive1, _CMHIVE *CmHive2){
_EX_PUSH_LOCK *p_SecurityLock;
bool v4;
_EX_PUSH_LOCK *v5;
p_SecurityLock = &CmHive2->SecurityLock;
v4 = CmHive1 <= CmHive2;
if( CmHive1 < CmHive2 )
{
ExAcquirePushLockExclusiveEx(&CmHive1->SecurityLock, 0i64);
ExAcquirePushLockSharedEx(p_SecurityLock, 0i64);
}
else
{
v5 = &CmHive2->SecurityLock;
if( !v4 )
{
ExAcquirePushLockSharedEx(v5, 0i64);
v5 = &CmHive1->SecurityLock;
}
ExAcquirePushLockExclusiveEx(v5, 0i64);
}
}Referenced by:
CmpCopyKeyPartial
CmpDoBuildVirtualStack
CmpSyncKeyValues