Structures Used Within Parser DLLs
The following structures are used within parser DLLs to assist functions performing administrative and functional tasks:
-
LABELED_BYTE, which is used to represent a value/label pair. You can create a table of these value/label pairs and point a SET structure to it to make a set of LABELED_BYTE structures.
-
LABELED_WORD, which is used to represent a value/label pair. You can create a table of these value/label pairs and point a SET structure to it to make a set of LABELED_WORD structures.
-
LABELED_DWORD, which is used to represent a value/label pair. You can create a table of these value/label pairs and point a SET structure to it to make a set of LABELED_DWORD structures.
-
SET, which is used to represent a table of values for a property. The first field is a count, and the rest of the entries can interpret the data pointed to as a BYTE, WORD, DWORD, LABELED_BYTE, LABELED_WORD, or LABELED_DWORD structure.
-
RANGE, which is used to represent a valid range for a number.
-
LABELED_BIT, which is used to handle bitfields or flags. The data type will almost always be found in conjunction with a SET data type.
-
PROTOCOLINFO, which is used to contain comments on a protocol.
-
PROPERTYINFO, which is used to describe the properties that the protocol parser needs to describe the frames.
-
PROPERTYINST, which is used to represent an instance of a property in a frame. If PropertyInst->Length is set to 0, then the lpPropertyInstEx structure points to a PROPERTYINSTEX structure defining free-form property instance data.
-
PROPERTYINSTEX, which is used to describe a free-form extended property instance when the actual data is in a proprietary format.