Added another overload of the public API Module.__GetSectionInfo() that returns more information about the section.

This commit is contained in:
jfrijters 2013-01-29 11:54:43 +00:00
Родитель cad052fcaf
Коммит ead034f0f5
3 изменённых файлов: 21 добавлений и 4 удалений

Просмотреть файл

@ -207,7 +207,16 @@ namespace IKVM.Reflection
throw new NotSupportedException();
}
public virtual bool __GetSectionInfo(int rva, out string name, out int characteristics)
public bool __GetSectionInfo(int rva, out string name, out int characteristics)
{
int virtualAddress;
int virtualSize;
int pointerToRawData;
int sizeOfRawData;
return __GetSectionInfo(rva, out name, out characteristics, out virtualAddress, out virtualSize, out pointerToRawData, out sizeOfRawData);
}
public virtual bool __GetSectionInfo(int rva, out string name, out int characteristics, out int virtualAddress, out int virtualSize, out int pointerToRawData, out int sizeOfRawData)
{
throw new NotSupportedException();
}

Просмотреть файл

@ -1155,9 +1155,9 @@ namespace IKVM.Reflection.Reader
return peFile.RvaToFileOffset((uint)rva);
}
public override bool __GetSectionInfo(int rva, out string name, out int characteristics)
public override bool __GetSectionInfo(int rva, out string name, out int characteristics, out int virtualAddress, out int virtualSize, out int pointerToRawData, out int sizeOfRawData)
{
return peFile.GetSectionInfo(rva, out name, out characteristics);
return peFile.GetSectionInfo(rva, out name, out characteristics, out virtualAddress, out virtualSize, out pointerToRawData, out sizeOfRawData);
}
public override int __ReadDataFromRVA(int rva, byte[] data, int offset, int length)

Просмотреть файл

@ -316,7 +316,7 @@ namespace IKVM.Reflection.Reader
throw new BadImageFormatException();
}
internal bool GetSectionInfo(int rva, out string name, out int characteristics)
internal bool GetSectionInfo(int rva, out string name, out int characteristics, out int virtualAddress, out int virtualSize, out int pointerToRawData, out int sizeOfRawData)
{
for (int i = 0; i < sections.Length; i++)
{
@ -324,11 +324,19 @@ namespace IKVM.Reflection.Reader
{
name = sections[i].Name;
characteristics = (int)sections[i].Characteristics;
virtualAddress = (int)sections[i].VirtualAddress;
virtualSize = (int)sections[i].VirtualSize;
pointerToRawData = (int)sections[i].PointerToRawData;
sizeOfRawData = (int)sections[i].SizeOfRawData;
return true;
}
}
name = null;
characteristics = 0;
virtualAddress = 0;
virtualSize = 0;
pointerToRawData = 0;
sizeOfRawData = 0;
return false;
}
}