HyperDbg/hyperdbg/include/SDK/imports/kernel/HyperDbgHyperTrace.h
2026-04-25 18:02:48 +02:00

55 lines
1.8 KiB
C

/**
* @file HyperDbgHyperTrace.h
* @author Sina Karvandi (sina@hyperdbg.org)
* @brief Headers relating exported functions from hypertrace (tracing) module
* @version 0.18
* @date 2026-02-08
*
* @copyright This project is released under the GNU Public License v3.
*
*/
#pragma once
#ifdef HYPERDBG_HYPERTRACE
# define IMPORT_EXPORT_HYPERTRACE __declspec(dllexport)
#else
# define IMPORT_EXPORT_HYPERTRACE __declspec(dllimport)
#endif
//////////////////////////////////////////////////
// HyperTrace Functions //
//////////////////////////////////////////////////
//
// Initialize the hypertrace module with the provided callbacks
//
IMPORT_EXPORT_HYPERTRACE BOOLEAN
HyperTraceLbrInitCallback(HYPERTRACE_CALLBACKS * HypertraceCallbacks, BOOLEAN InitForHypervisorEnvironment);
//
// Uninitialize the HyperTrace module
//
IMPORT_EXPORT_HYPERTRACE VOID
HyperTraceLbrUninit();
//
// Perform operations related to HyperTrace based on the request type and parameters
//
IMPORT_EXPORT_HYPERTRACE BOOLEAN
HyperTraceLbrPerformOperation(HYPERTRACE_OPERATION_PACKETS * LbrOperationRequest,
BOOLEAN ApplyFromVmxRootMode);
//////////////////////////////////////////////////
// LBR Functions //
//////////////////////////////////////////////////
IMPORT_EXPORT_HYPERTRACE BOOLEAN
HyperTraceLbrSave(HYPERTRACE_OPERATION_PACKETS * HyperTraceOperationRequest,
BOOLEAN ApplyFromVmxRootMode);
IMPORT_EXPORT_HYPERTRACE BOOLEAN
HyperTraceLbrDump(HYPERTRACE_OPERATION_PACKETS * HyperTraceOperationRequest,
BOOLEAN ApplyFromVmxRootMode);
IMPORT_EXPORT_HYPERTRACE BOOLEAN
HyperTraceLbrQueryStateOfLbrSaveAndLoadVmExitAndEntryControls(UINT32 CoreId);