DrvDbReleaseDatabaseNodeBaseKey
__int64 __fastcall DrvDbReleaseDatabaseNodeBaseKey(__int64 a1, __int64 a2, __int64 a3, void *a4){
_ETHREAD *CurrentThread;
int v5;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v5 = 0;
--*((_WORD *)CurrentThread + 242);
ExAcquireResourceExclusiveLite(*(ERESOURCE **)(a2 + 144), 1u);
if( (*(_DWORD *)(a2 + 56) & 2) == 0 )
{
v5 = ZwClose(a4);
if( v5 >= 0 )
v5 = DrvDbUnloadDatabaseNode(a1, a2);
}
ExReleaseResourceLite(*(PERESOURCE *)(a2 + 144));
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return(unsigned int)v5;
}Referenced by:
DrvDbDeleteObjectRegKey
DrvDbGetObjectList
DrvDbOpenObjectRegKey