2025-04-27 07:49:33 -04:00

123 lines
3.7 KiB
Plaintext

//-----------------------------------------------------------------------------
// Microsoft VSEE
//
// Microsoft Confidential
// Copyright 1995-1999 Microsoft Corporation. All Rights Reserved.
//
// @doc EXTERNAL
// @module LECPlugin.idl - Interface definitions for support of the Analyzer Plugin |
//
// @owner AllenD
//-----------------------------------------------------------------------------
import "oaidl.idl";
import "ocidl.idl";
/*-----------------------------------------------------------------------------
Name: ISystemDebugPluginControl
@interface ISystemDebugPluginControl | Analyzer plugin control interface
Implemented by the Analyzer LEC. Called by the plugin controller.
@owner AllenD
@base public | IUnknown
-----------------------------------------------------------------------------*/
[uuid(6c736d3F-7E40-41e2-9877-8CA63B493464)]
interface ISystemDebugPluginControl : IUnknown
{
// @meth HRESULT | LoadPlugin | Load the desired plugin
HRESULT LoadPlugin (
[in] REFCLSID clsidPlugin,
[in] IUnknown * punkPluginData,
[out] DWORD * pdwPluginCookie
);
// @meth HRESULT | UnloadPlugin | Release the active plugin
HRESULT UnloadPlugin (
[in] DWORD dwPluginCookie
);
};
/*-----------------------------------------------------------------------------
Name: ISystemDebugPluginAttachment
@interface ISystemDebugPluginAttachment | Analyzer plugin attachment interface
Implemented by the Analyzer LEC. Called by the plugin.
@owner AllenD
@base public | IUnknown
-----------------------------------------------------------------------------*/
[uuid(6c736d15-F7AC-4114-B8E6-50908F28AC5B)]
interface ISystemDebugPluginAttachment : IUnknown
{
// @meth HRESULT | ActivateEventSource | Activates a specified event source
HRESULT ActivateEventSource (
[in] DWORD dwPluginId,
[in] REFGUID guidEventSourceId
);
// @meth HRESULT | DeactivateEventSource | Deactivates the specified event source
HRESULT DeactivateEventSource (
[in] DWORD dwPluginId,
[in] REFGUID guidEventSourceId
);
// @meth HRESULT | StartFiring | A request to start delivery of events to the plugin
HRESULT StartFiring (
[in] DWORD dwPluginId
);
// @meth HRESULT | StopFiring | A request to stop delivery of events to the plugin
HRESULT StopFiring (
[in] DWORD dwPluginId
);
// @meth HRESULT | SetBlockOnOverflow | A request to to set/reset the block on overflow flag
HRESULT SetBlockOnOverflow (
[in] BOOL fBlock
);
// @meth HRESULT | GetMachineInfo | Retrieves performance counter information from the local machine
HRESULT GetMachineInfo (
[out] LARGE_INTEGER * pliTimebase,
[out] LARGE_INTEGER * pliFrequency
);
};
/*-----------------------------------------------------------------------------
Name: ISystemDebugPlugin
@interface ISystemDebugPlugin | Analyzer plugin interface
Implemented by the plugin.
@owner AllenD
@base public | IUnknown
-----------------------------------------------------------------------------*/
[uuid(6c736dDC-00F1-4c63-ABD8-638E1381B73B)]
interface ISystemDebugPlugin : IUnknown
{
// @meth HRESULT | Startup | Instructs the plugin to start, providing context data
HRESULT Startup (
[in] DWORD dwPluginId,
[in] IUnknown * punkPluginData,
[in] ISystemDebugPluginAttachment * pAttachPoint
);
// @meth HRESULT | FireEvents | Delivers events to the plugin
HRESULT FireEvents (
[in] REFGUID guidFiringComponent,
[in] ULONG ulEventBufferSize,
[in, size_is(ulEventBufferSize)] unsigned char rgEventBuffer[]
);
// @meth HRESULT | Shutdown | Instructs the plugin to shutdown (about to be released)
HRESULT Shutdown ();
};