ECMA-335: What means 0x55 in Custom Attribute Signature?

A

Alex Sedow

Hello All! (especially for Mattias)

Sorry. But I have one more question.

While parsing System.dll parser found 0x55 - prefix that not described in
ECMA-335 (2nd edition, december 2002).
Custom Attribute (index 0x1a9) in System.dll has following signature
(corresponding method signature described bellow).

Custom attribute signature:
0x21 - blob size
0x01 0x00 - Prolog
0x55 - ?
0x17 "System.IO.NotifyFilters" - SerString
0x13 0x00 0x00 0x00 - ? (additional 4 bytes for 0x55 prefix, (prefix 0x50
not contain additional 4 bytes))
0x00 0x00 - NumNames

Method signature:
0x04 - blob size
0x20 - Flags (HASTHIS)
0x01 - FixedArgs
0x01 - ELEMENT_TYPE_VOID
0x1c - ELEMENT_TYPE_OBJECT

Questions:
1. What means prefix 0x55?
2. Is prefix 0x55 not described in standart? (Or I something missing?)
3. What means additional 4 bytes in attribute signature?

Alex.
 
M

Mattias Sjögren

Alex,
1. What means prefix 0x55?
3. What means additional 4 bytes in attribute signature?

It's SERIALIZATION_TYPE_ENUM from CorSerializationType in CorHdr.h, so
it indicates that it's an enum type, and the type name (NotifyFilters
in this case) follows as a SerString, and then comes the raw enum
value, in this case four bytes.

The reason SERIALIZATION_TYPE_ENUM and the type name is needed, and
not just the the value, is of course that the actual parameter type is
E_T_OBJECT.

2. Is prefix 0x55 not described in standart? (Or I something missing?)

I couldn't find it either, don't know why it isn't mentioned.



Mattias
 
A

Alex Sedow

Mattias,

Thanks for the link to file (I found it in SDK).
Can you get link on some public document that describe details not mentioned
in standart?
Or I must mining these details from Rotor/gyro?

Alex.
 
M

Mattias Sjögren

Alex,
Can you get link on some public document that describe details not mentioned
in standart?
Or I must mining these details from Rotor/gyro?

No sorry, I haven't seen any documentation on it. It's been a while
since I looked into it, but I believed I figured it out by trial and
error and possibly looking at the Rotor source.



Mattias
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top