HalpIrtFreeIndex
VOID __stdcall HalpIrtFreeIndex(UINT64 IrtIndex, UINT64 Count){
int v2;
int v3;
UINT32 v4;
unsigned int v5;
unsigned int v6;
unsigned int v7;
v3 = v2;
v4 = Count;
v5 = IrtIndex;
if( *(&CmpDummyThreadEvent + 1958) )
{
v6 = (unsigned int)IrtIndex % *(&CmpDummyThreadEvent + 1937);
v7 = (unsigned int)IrtIndex / *(&CmpDummyThreadEvent + 1937);
ExAcquireFastMutex((PFAST_MUTEX)((char *)&CmpDummyThreadEvent + 7776));
RtlClearBits((PRTL_BITMAP)&CmpDummyThreadEvent + v7 + 450, v6, v4);
KeReleaseGuardedMutex((PKGUARDED_MUTEX)((char *)&CmpDummyThreadEvent + 7776));
if( v3 == 3 && (*(&CmpDummyThreadEvent + 7712) & 2) != 0 )
HalpIommuFreeRemappingTableEntry(v5, v4);
if( (*(&CmpDummyThreadEvent + 7712) & 4) != 0 )
HalpIrtReleaseDeviceAperture(v5 / *(&CmpDummyThreadEvent + 1938), v4);
}
}Referenced by:
HalpInterruptRemap
HalpInterruptUnmap