HyperDbg/hyperdbg/include/SDK/modules/HyperLog.h
2024-07-28 20:42:48 +09:00

54 lines
1.5 KiB
C

/**
* @file HyperLog.h
* @author Sina Karvandi (sina@hyperdbg.org)
* @brief HyperDbg's SDK for HyperLog project
* @details This file contains definitions of HyperLog routines
* @version 0.2
* @date 2023-01-15
*
* @copyright This project is released under the GNU Public License v3.
*
*/
#pragma once
//////////////////////////////////////////////////
// Callback Types //
//////////////////////////////////////////////////
/**
* @brief A function that checks whether the current operation
* is on vmx-root mode or not
*
*/
typedef BOOLEAN (*CHECK_VMX_OPERATION)();
/**
* @brief A function that checks whether the immediate message
* sending is needed or not
*
*/
typedef BOOLEAN (*CHECK_IMMEDIATE_MESSAGE_SENDING)(UINT32 OperationCode);
/**
* @brief A function that sends immediate messages
*
*/
typedef BOOLEAN (*SEND_IMMEDIATE_MESSAGE)(CHAR * OptionalBuffer,
UINT32 OptionalBufferLength,
UINT32 OperationCode);
//////////////////////////////////////////////////
// Callback Structure //
//////////////////////////////////////////////////
/**
* @brief Prototype of each function needed by message tracer
*
*/
typedef struct _MESSAGE_TRACING_CALLBACKS
{
CHECK_VMX_OPERATION VmxOperationCheck;
CHECK_IMMEDIATE_MESSAGE_SENDING CheckImmediateMessageSending;
SEND_IMMEDIATE_MESSAGE SendImmediateMessage;
} MESSAGE_TRACING_CALLBACKS, *PMESSAGE_TRACING_CALLBACKS;