123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- //==================================================================================================
- // PIXPlugin.h
- //
- // Microsoft PIX Plugin Header
- //
- // Copyright (c) Microsoft Corporation, All rights reserved
- //==================================================================================================
- #pragma once
- #ifdef __cplusplus
- extern "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
- //==================================================================================================
|