MmGetImageFileSignatureInformation
CHAR __stdcall MmGetImageFileSignatureInformation(INT64 a1){
_MI_SECTION_OBJECT_POINTERS *v1;
CHAR v2;
_CONTROL_AREA *v3;
_CONTROL_AREA *v4;
UINT8 v6;
v1 = *(_MI_SECTION_OBJECT_POINTERS **)(a1 + 40);
v2 = 0;
v6 = 0;
if( !v1 )
return 0;
v3 = MiLockSectionControlArea(v1, 0i64, &v6);
v4 = v3;
if( !v3 )
return 0;
if( (v3->u.LongFlags & 3) != 0 )
{
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&v3->ControlAreaLock);
__writecr8(v6);
}
else
{
++v3->NumberOfSectionReferences;
MiRemoveUnusedSegment(v3);
++v4->NumberOfUserReferences;
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&v4->ControlAreaLock);
__writecr8(v6);
v2 = v4->Segment->SegmentFlags.UChar2 >> 4;
MiDereferenceControlAreaBySection(v4, 1ui64);
}
return v2;
}Referenced by:
No references.