ObRevokeHandles
VOID __stdcall ObRevokeHandles(_OB_HANDLE_REVOCATION_BLOCK *RevocationBlock){
_ETHREAD *CurrentThread;
_OB_HANDLE_REVOCATION_BLOCK *Flink;
_HANDLE_REVOCATION_INFO *v4;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx(&RevocationBlock->Lock, 0i64);
Flink = (_OB_HANDLE_REVOCATION_BLOCK *)RevocationBlock->RevocationInfos.Flink;
while( Flink != RevocationBlock )
{
v4 = (_HANDLE_REVOCATION_INFO *)Flink;
Flink = (_OB_HANDLE_REVOCATION_BLOCK *)Flink->RevocationInfos.Flink;
ObpHandleRevocationBlockRemoveInsertedObject(v4, RevocationBlock, 1ui64, 1u);
}
ExReleasePushLockEx((_DWORD)RevocationBlock + 16, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}Referenced by:
SepDeleteLogonSessionTrack