CmpLockKcbStackTopExclusiveRestShared
_ETHREAD *__fastcall CmpLockKcbStackTopExclusiveRestShared(__int64 a1){
int v1;
INT16 v2;
__int64 v4;
INT64 KcbAtLayerHeight;
v1 = *(__int16 *)(a1 + 2);
v2 = 0;
if( v1 - 1 >= 0 )
{
do
{
KcbAtLayerHeight = CmpGetKcbAtLayerHeight(a1, v2);
ExAcquirePushLockSharedEx(KcbAtLayerHeight + 48, 0i64);
_InterlockedAdd((volatile signed __int32 *)(KcbAtLayerHeight + 56), 1u);
LOWORD(v1) = *(_WORD *)(a1 + 2);
++v2;
}
while( v2 <= (__int16)v1 - 1 );
}
v4 = CmpGetKcbAtLayerHeight(a1, v1);
return CmpLockKcbExclusive(v4);
}Referenced by:
CmDeleteLayeredKey
CmDeleteValueKey
CmSetKeyFlags
CmSetLastWriteTimeKey
CmSetValueKey
CmpDoBuildVirtualStack
CmpDoParseKey
CmpGetSymbolicLinkTarget
CmpPromoteKey
CmpSetKeySecurity