ExpFreeOwnerEntry
NTSTATUS __stdcall ExpFreeOwnerEntry(INT64 a1){
int v1;
UINT64 v3;
NTSTATUS result;
v1 = *(_DWORD *)(a1 + 8);
v3 = *(_QWORD *)a1;
if( (v1 & 2) != 0 )
{
v3 &= 0xFFFFFFFFFFFFFFFCui64;
}
else if( (v3 & 3) != 0 )
{
LABEL_11:
result = 0;
*(_QWORD *)a1 = 0i64;
return result;
}
if( !v3 )
goto LABEL_11;
if( (v1 & 1) != 0 )
{
PsBoostThreadIoEx((_ETHREAD *)v3, 1u, 0, 0i64);
*(_DWORD *)(a1 + 8) &= ~1u;
v1 = *(_DWORD *)(a1 + 8);
}
if( (v1 & 4) != 0 )
{
PsBoostThreadIoQoS((_ETHREAD *)v3, 1ui64);
*(_DWORD *)(a1 + 8) &= ~4u;
v1 = *(_DWORD *)(a1 + 8);
}
if( (v1 & 2) != 0 )
{
ObDereferenceObjectDeferDelete(v3);
*(_DWORD *)(a1 + 8) &= ~2u;
}
result = 0;
*(_QWORD *)a1 = 0i64;
return result;
}Referenced by:
CcUnpinFileDataEx