You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
5.7 KiB
120 lines
5.7 KiB
//================================================================================================== |
|
// 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 |
|
//================================================================================================== |
|
|
|
|