OllyDbg keeps small pieces of the data of variable size in the central depository called data table. Each kind of data has its own tag, or data type. For example, labels added by the Analyser are saved as NM_ANALYSE and switch cases - as records of type DT_CASE.
Data types are scarce resource. As data table may contain tens of
millions of records, type is kept in a 1-byte field. Of these, only 126
may be used by plugins. They are distributed dynamically, according to
the "first asked - first served" rule.
During the initialization, plugins should call Plugingetuniquedatatype() as many times as necessary (best of all, inside ODBG2_Plugininit()). Received data types are valid for the whole session. Again: data types are very scarce resource! Always check whether there is some alternative way to keep your data!
success, returns data type that can be used by plugin in the calls to
data function all the time till OllyDbg is closed. If all available
data types are already distributed, returns DT_NONE