MiLoadUserSymbols
VOID __stdcall MiLoadUserSymbols(_CONTROL_AREA *ControlArea, VOID *StartingAddress, _EPROCESS *Process){
_FILE_OBJECT *v6;
_FILE_OBJECT *v7;
union {_MI_SECTION_IMAGE_INFORMATION *ImageInformation;void *FirstMappedVa;} v8;
unsigned int SizeOfImage;
unsigned int CheckSum;
int v11;
UINT64 CapturedCheckSum;
_STRING AnsiFileName;
AnsiFileName = 0i64;
v6 = MiReferenceControlAreaFile(ControlArea);
v7 = v6;
if( v6->FileName.Length )
{
v8.ImageInformation = (_MI_SECTION_IMAGE_INFORMATION *)ControlArea->Segment->u2;
SizeOfImage = v8.ImageInformation->InternalImageInformation.SizeOfImage;
CheckSum = v8.ImageInformation->ExportedImageInformation.CheckSum;
v11 = DbgUnicodeStringToAnsiString(&AnsiFileName, &v6->FileName);
MiDereferenceControlAreaFile(ControlArea, v7);
if( v11 == 1 )
{
LODWORD(CapturedCheckSum) = CheckSum;
DbgLoadUserImageSymbols(&AnsiFileName, StartingAddress, (UINT64)Process, SizeOfImage, CapturedCheckSum);
RtlFreeAnsiString((_UNICODE_STRING *)&AnsiFileName);
}
}
else
{
MiDereferenceControlAreaFile(ControlArea, v6);
}
}Referenced by:
MiMapViewOfImageSection