IoDisconnectInterruptEx
VOID __stdcall IoDisconnectInterruptEx(_IO_DISCONNECT_INTERRUPT_PARAMETERS *Parameters){
_DWORD *Generic;
unsigned int j;
unsigned int i;
if( Parameters->Version == 1 )
goto LABEL_5;
if( Parameters->Version == 2 )
{
Generic = Parameters->ConnectionContext.Generic;
for( i = 0; i < Generic[73]; ++i )
IoDisconnectInterrupt((PKINTERRUPT)(*(_QWORD *)&Generic[2 * i + 74] + 112i64));
}
else
{
if( Parameters->Version != 3 )
{
if( Parameters->Version == 4 )
{
LABEL_5:
IoDisconnectInterrupt(Parameters->ConnectionContext.InterruptObject);
return;
}
if( Parameters->Version != 5 )
KeBugCheckEx(0xCAu, 9ui64, Parameters->Version, 0i64, 0i64);
}
Generic = Parameters->ConnectionContext.Generic;
for( j = 0; j < Generic[1]; ++j )
IoDisconnectInterrupt(*(PKINTERRUPT *)&Generic[12 * j + 6]);
}
ExFreePoolWithTag(Generic, 0);
}Referenced by:
No references.