AlpcpReleaseMessageAttributesOnCancel
void __fastcall AlpcpReleaseMessageAttributesOnCancel(__int64 a1, int a2){
void *v4;
ULONG_PTR v5;
void *v6;
unsigned __int64 v7;
v4 = *(void **)(a1 + 136);
if( v4 )
{
AlpcpDereferenceBlobEx(v4, 1i64);
*(_QWORD *)(a1 + 136) = 0i64;
}
v5 = *(_QWORD *)(a1 + 144);
if( v5 && (!a2 || (*(_DWORD *)(a1 + 40) & 0x4000) == 0) )
{
AlpcpReleaseViewAttribute(v5);
*(_QWORD *)(a1 + 144) = 0i64;
}
v6 = *(void **)(a1 + 152);
if( v6 )
{
AlpcpDereferenceBlobEx(v6, 1i64);
*(_QWORD *)(a1 + 152) = 0i64;
}
v7 = *(_QWORD *)(a1 + 160);
if( (v7 & 1) != 0 )
{
if( v7 >= 4 && (v7 & 2) != 0 )
HalPutDmaAdapter((PADAPTER_OBJECT)(v7 & 0xFFFFFFFFFFFFFFFCui64));
*(_QWORD *)(a1 + 160) = 0i64;
}
}Referenced by:
AlpcpCancelMessage
AlpcpCancelMessagesByRequestor