PROPERTYINFO

The PROPERTYINFO data structure is used to describe the properties that the protocol parser needs to describe the frames.

typedef struct _PROPERTYINFO
{
    HPROPERTY hProperty;
    DWORD Version;
    LPSTR Label;
    LPSTR Comment;
    BYTE DataType;
    BYTE DataQualifier;

    union
    {
        LPVOID lpExtendedInfo; 
        LPRANGE lpRange; 
        LPSET lpSet; 
        DWORD Bitmask; 
        DWORD Value; 
    };

    WORD FormatStringSize;
    LPVOID InstanceData;
} PROPERTYINFO;

typedef PROPERTYINFO *LPPROPERTYINFO;

For example, the PROPERTYINFO table for the SMB parser starts like this:

PROPERTYINFO property_table[] =
{

// PROP_SMB_SUMMARY
    {   0,0,
        "Summary",
        "Server Message Block (SMB)",
        PROP_TYPE_SUMMARY,
        PROP_QUAL_NONE,
        NULL,
        128,
        fm_smb_summary },
...

At Register time, the SMB parser then tell the system about the properties like this:
    for (i = 0; i < PROP_LAST_PROPERTY; i++)
    {    
        AddProperty(hSMBProtocol, &property_table[i]);
    }

Members

hProperty
Handle to the property. Assign at AddProperty time.
Version
Set to zero. Unused at this time.
Label
The name of the property.
Comment
The description of property that shows up on the status bar.
DataType
The data type of a property, such as Prop, Type or Byte.
DataQualifier
The data qualifier of the property, such as Prop, Type, or Array.
lpExtendedInfo
Reserved.
lpRange
A pointer to a range structure.
lpSet
A pointer to a set.
Bitmask
A bitmask to apply.
Value
Constant value.
FormatStringSize
Maximum size to reserve for textual description.
InstanceData
Property-specific instance data.