| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | //==================================================================================================// PIXPlugin.h//// Microsoft PIX Plugin Header//// Copyright (c) Microsoft Corporation, All rights reserved//==================================================================================================#pragma once#ifdef __cplusplusextern "C" {#endif//==================================================================================================// PIX_PLUGIN_SYSTEM_VERSION - Indicates version of the plugin interface the plugin is built with.//==================================================================================================#define PIX_PLUGIN_SYSTEM_VERSION 0x101//==================================================================================================// PIXCOUNTERID - A unique identifier for each PIX plugin counter.//==================================================================================================typedef int PIXCOUNTERID;//==================================================================================================// PIXCOUNTERDATATYPE - Indicates what type of data the counter produces.//==================================================================================================enum PIXCOUNTERDATATYPE{    PCDT_RESERVED,    PCDT_FLOAT,    PCDT_INT,    PCDT_INT64,    PCDT_STRING,};//==================================================================================================// PIXPLUGININFO - This structure is filled out by PIXGetPluginInfo and passed back to PIX.//==================================================================================================struct PIXPLUGININFO{    // Filled in by caller:    HINSTANCE hinst;    // Filled in by PIXGetPluginInfo:    WCHAR* pstrPluginName;              // Name of plugin    int iPluginVersion;                 // Version of this particular plugin    int iPluginSystemVersion;           // Version of PIX's plugin system this plugin was designed for};//==================================================================================================// PIXCOUNTERINFO - This structure is filled out by PIXGetCounterInfo and passed back to PIX //                  to allow PIX to determine information about the counters in the plugin.//==================================================================================================struct PIXCOUNTERINFO{    PIXCOUNTERID counterID;             // Used to uniquely ID this counter    WCHAR* pstrName;                    // String name of the counter    PIXCOUNTERDATATYPE pcdtDataType;    // Data type returned by this counter};//==================================================================================================// PIXGetPluginInfo - This returns basic information about this plugin to PIX.//==================================================================================================BOOL WINAPI PIXGetPluginInfo( PIXPLUGININFO* pPIXPluginInfo );//==================================================================================================// PIXGetCounterInfo - This returns an array of PIXCOUNTERINFO structs to PIX.  //                     These PIXCOUNTERINFOs allow PIX to enumerate the counters contained//                     in this plugin.//==================================================================================================BOOL WINAPI PIXGetCounterInfo( DWORD* pdwReturnCounters, PIXCOUNTERINFO** ppCounterInfoList );//==================================================================================================// PIXGetCounterDesc - This is called by PIX to request a description of the indicated counter.//==================================================================================================BOOL WINAPI PIXGetCounterDesc( PIXCOUNTERID id, WCHAR** ppstrCounterDesc );//==================================================================================================// PIXBeginExperiment - This called by PIX once per counter when instrumentation starts.//==================================================================================================BOOL WINAPI PIXBeginExperiment( PIXCOUNTERID id, const WCHAR* pstrApplication );//==================================================================================================// PIXEndFrame - This is called by PIX once per counter at the end of each frame to gather the//               counter value for that frame.  Note that the pointer to the return data must//               continue to point to valid counter data until the next call to PIXEndFrame (or//               PIXEndExperiment) for the same counter.  So do not set *ppReturnData to the same //               pointer for multiple counters, or point to a local variable that will go out of //               scope.  See the sample PIX plugin for an example of how to structure a plugin//               properly.//==================================================================================================BOOL WINAPI PIXEndFrame( PIXCOUNTERID id, UINT iFrame, DWORD* pdwReturnBytes, BYTE** ppReturnData );//==================================================================================================// PIXEndExperiment - This is called by PIX once per counter when instrumentation ends.//==================================================================================================BOOL WINAPI PIXEndExperiment( PIXCOUNTERID id );#ifdef __cplusplus};#endif//==================================================================================================// eof: PIXPlugin.h//==================================================================================================
 |