IopCallDriverReinitializationRoutines
UINT8 __stdcall IopCallDriverReinitializationRoutines(UINT8 FlushAndEnable){
UINT8 v1;
UINT8 v2;
_LIST_ENTRY *v3;
v1 = 0;
v2 = FlushAndEnable;
if( !FlushAndEnable && !byte_140C50310 )
return 0;
while( 1 )
{
v3 = IopInterlockedRemoveHeadList((_LIST_ENTRY *)&stru_140C452E0 + 102);
if( v3 )
{
v1 = 1;
do
{
++LODWORD(v3[1].Flink[3].Flink[1].Flink);
LODWORD(v3[1].Flink[1].Flink) &= ~8u;
((void(__fastcall *)(_LIST_ENTRY *, _LIST_ENTRY *, _QWORD))v3[1].Blink)(
v3[1].Flink,
v3[2].Flink,
LODWORD(v3[1].Flink[3].Flink[1].Flink));
HalPutDmaAdapter((PADAPTER_OBJECT)v3[1].Flink);
ExFreePoolWithTag(v3, 0);
v3 = IopInterlockedRemoveHeadList((_LIST_ENTRY *)&stru_140C452E0 + 102);
}
while( v3 );
}
if( v2 != 1 )
break;
byte_140C50310 = 1;
v2 = 0;
}
return v1;
}Referenced by:
IopLoadUnloadDriver
PipCallDriverAddDeviceQueryRoutine
PnpCompleteSystemStartProcess