Weird Ways to Run Unmanaged Code in .NET
uint
, which is 4 bytes in size.Source Code https://github.com/dotnet/runtime/blob/main/src/coreclr/vm/methodtable.h
Byte Offset | Data size (bytes) | Data Type | Property Name | Description |
---|---|---|---|---|
0 | 0x0 | 4 | uint | m_dwFlags |
4 | 0x4 | 4 | uint | m_BaseSize |
8 | 0x8 | 2 | ushort | m_wFlags2 |
10 | 0x0a | 2 | ushort | m_wToken |
12 | 0x0c | 2 | ushort | m_wNumVirtuals |
14 | 0x0e | 2 | ushort | m_wNumInterfaces |
16 | 0x10 | 8 | IntPtr | m_pParentMethodTable |
24 | 0x18 | 8 | IntPtr | m_pLoaderModule |
32 | 0x20 | 8 | IntPtr | m_pWriteableData |
40 | 0x28 | 8 | IntPtr | m_pEEClass |
48 | 0x30 | 8 | IntPtr | m_pPerInstInfo |
56 | 0x38 | 8 | IntPtr | m_pInterfaceMap |
Overall size: 64 bytes
Documentation, line 1800 https://blog.weghos.com/coreclr/CoreCLR/vm/class.h.html
Byte Offset | Data size (bytes) | Data Type | Property name | Description |
---|---|---|---|---|
0 | 0x0 | 8 | IntPtr | m_pGuidInfo |
8 | 0x8 | 8 | IntPtr | m_rpOptionalFields |
16 | 0x10 | 8 | IntPtr | m_pMethodTable |
24 | 0x18 | 8 | IntPtr | m_pFieldDescList |
32 | 0x20 | 8 | IntPtr | m_pChunks |
Overall size: 40 bytes
Byte Offset | Data size (bytes) | Data Type | Property Name | Description |
---|---|---|---|---|
0 | 0x0 | 8 | IntPtr | m_methodTable |
8 | 0x8 | 8 | IntPtr | m_next |
16 | 0x10 | 1 | byte | m_size |
17 | 0x11 | 1 | byte | m_count |
18 | 0x12 | 1 | byte | m_flagsAndTokenRange |
Overall size: 19 bytes
Byte Offset | Data size (bytes) | Data Type | Property Name | Description |
---|---|---|---|---|
0 | 0x0 | 2 | ushort | m_wFlags3AndTokenRemainder |
2 | 0x2 | 1 | byte | m_chunkIndex |
3 | 0x3 | 1 | byte | m_bFlags2 |
4 | 0x4 | 2 | ushort | m_wSlotNumber |
6 | 0x6 | 2 | ushort | m_wFlags |
8 | 0x8 | 8 | IntPtr | TempEntry |
Overall size: 16 bytes