LFMFUNCID (0x1602)
December 12, 2025 ยท View on GitHub
Identifies a member function. This includes both static and non-static member functions.
struct MFuncId {
TypeIndex parent_type;
TypeIndex func_type;
strz name;
uint64_t decorated_name_hash; // optional; may not be present
};
parent_type is the type of the class or struct that this member function is
defined on. This field points into the TPI. The type record that it points to
should be one of LF_STRUCTURE, LF_CLASS, LF_UNION, or LF_ENUM.
(LF_ENUM is used only by Rust.)
func_type field is the type of the member function. It may identify static
methods and instance methods. It is not known whether LF_MFUNC_ID is used for
constructors, destructors, or other special methods.
name is the undecorated name of the function, e.g. AddRef. For special
functions, such as constructors and conversion operations, each language has its
own conventions for how to encode those names. The following is a non-exhaustive
list of the special function names that have been observed in LF_MFUNC_ID
records:
{ctor}- constructors{dtor}- destructorsoperator unsigned __int64- conversion methodoperator newoperator=operator==operator!=operator++
decorated_name_hash has the same meaning as in the LF_FUNC_ID record,
including its interaction with padding bytes.
Example
00000000 : 7f 10 00 00 a3 10 00 00 47 65 74 4e 65 78 74 45 : ........GetNextE
00000010 : 76 65 6e 74 53 6f 75 72 63 65 4f 62 6a 65 63 74 : ventSourceObject
00000020 : 49 64 00 46 48 d4 bc ac 43 c4 43 f1 : Id.FH...C.C.
parent_typeis 0x107ffunc_typeis 0x10a3nameisGetNextEventSourceObjectIddecorated_name_hashis 0x43c443ac_bcd44846
Note the presence of the f1 padding byte at the end of the record. It is not
part of decorated_name_hash.
Example
00000400 : 98 10 00 00 e8 00 00 00 1a 12 00 00 01 00 2e 00 : ................
00000410 : 02 16 7f 10 00 00 a3 10 00 00 47 65 74 4e 65 78 : ..........GetNex
00000420 : 74 45 76 65 6e 74 53 6f 75 72 63 65 4f 62 6a 65 : tEventSourceObje
00000430 : 63 74 49 64 00 46 48 d4 bc ac 43 c4 43 f1 1e 00 : ctId.FH...C.C...
In this example, parent_type is 0x107F, func_type is 0x10A3, name is
GetNextEventSourceObjectId, and the decorated_name_hash is
0x43c443ac_bcd44846. Note the presence of a single alignment padding byte (F1).