MiDeleteSessionDriverProtos
VOID __stdcall MiDeleteSessionDriverProtos(_CONTROL_AREA *ControlArea){
_SEGMENT *Segment;
_CONTROL_AREA *i;
_MI_PER_SESSION_PROTOS *SubsectionDriverProtos;
Segment = ControlArea->Segment;
for( i = ControlArea + 1; i; i = *(_CONTROL_AREA **)&i->gap8[8] )
{
if( (i->NumberOfPfnReferences & 0x20000) == 0 )
{
SubsectionDriverProtos = MiGetSubsectionDriverProtos((_SUBSECTION *)i);
if( SubsectionDriverProtos )
{
i->NumberOfSectionReferences = 0i64;
SubsectionDriverProtos->Subsection = (_SUBSECTION *)i;
MiDeletePerSessionProtos(SubsectionDriverProtos);
}
}
}
Segment->SegmentFlags.Short0 &= ~0x800u;
}Referenced by:
MiCreateSessionDriverProtos
MiMapSystemImage