Obligatory plugin callback function. The presence of this function is an indication of the valid OllyDbg 2.xx plugin.

int ODBG2_Pluginquery(int ollydbgversion,unsigned long *features,wchar_t pluginname[SHORTNAME],wchar_t pluginversion[SHORTNAME]);


(in) OllyDbg version, VERSIONHI*100+VERSIONLO. For example, this parameter is 201 for OllyDbg v2.01. If plugin means that OllyDbg is too old, it must return 0
(in) Pointer to array of unsigned long integers. Element features[0] is always present and contains number of elements that follow features[0] (currently 0). They will contain some additional version-related information
(out) Null-terminated plugin name, at most SHORTNAME UNICODE characters long. OllyDbg uses pluginname to identify plugin to the user
(out) Null-terminated plugin version, at most SHORTNAME UNICODE characters long. May be empty. OllyDbg uses pluginversion to identify plugin to the user

Return values:

0 if plugin is not compatible with the OllyDbg and PLUGIN_VERSION otherwise. This constant will change each time I make incompatible changes to the plugin API

ODBG2_Pluginquery() is called once when plugin starts. Plugin must check whether given OllyDbg version is correctly supported and return 0 if not. Then it should fill pluginname and pluginversion (note: UNICODE strings) and return version of the expected plugin interface (PLUGIN_VERSION). If OllyDbg decides that this plugin is not compatible, it will unload plugin. Plugin name identifies it in the Plugins menu. The name should be descriptive and correlate with the name of DLL.

Attention, ODBG2_Pluginquery() should avoid calling plugin API functions, they may be incompatible! All one-time initializations must be performed in ODBG2_Plugininit().

See also:
Analysis, plugins, ODBG2_Plugininit(), ODBG2_Plugindestroy()