HyperDbg Debugger
Loading...
Searching...
No Matches
HyperLogCallback.c File Reference

VMM callback interface routines. More...

#include "pch.h"

Functions

BOOLEAN LogCallbackPrepareAndSendMessageToQueue (UINT32 OperationCode, BOOLEAN IsImmediateMessage, BOOLEAN ShowCurrentSystemTime, BOOLEAN Priority, const CHAR *Fmt,...)
 routines callback for preparing and sending message to queue
BOOLEAN LogCallbackSendMessageToQueue (UINT32 OperationCode, BOOLEAN IsImmediateMessage, CHAR *LogMessage, UINT32 BufferLen, BOOLEAN Priority)
 routines callback for sending message to queue
BOOLEAN LogCallbackCheckIfBufferIsFull (BOOLEAN Priority)
 routines callback for checking if buffer is full
BOOLEAN LogCallbackSendBuffer (_In_ UINT32 OperationCode, _In_reads_bytes_(BufferLength) PVOID Buffer, _In_ UINT32 BufferLength, _In_ BOOLEAN Priority)
 routines callback for sending buffer

Detailed Description

VMM callback interface routines.

Author
Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
Version
0.2
Date
2023-01-29

Function Documentation

◆ LogCallbackCheckIfBufferIsFull()

BOOLEAN LogCallbackCheckIfBufferIsFull ( BOOLEAN Priority)

routines callback for checking if buffer is full

Checks whether the priority or regular buffer is full or not.

Parameters
Priority
Returns
BOOLEAN
Parameters
PriorityWhether the buffer has priority
Returns
BOOLEAN Returns true if the buffer is full, otherwise, return false
101{
102 if (g_Callbacks.LogCallbackCheckIfBufferIsFull == NULL)
103 {
104 //
105 // Ignore sending message to queue
106 //
107 return FALSE;
108 }
109
110 return g_Callbacks.LogCallbackCheckIfBufferIsFull(Priority);
111}
#define FALSE
Definition BasicTypes.h:113
HYPEREVADE_CALLBACKS g_Callbacks
List of callbacks.
Definition Transparency.h:23

◆ LogCallbackPrepareAndSendMessageToQueue()

BOOLEAN LogCallbackPrepareAndSendMessageToQueue ( UINT32 OperationCode,
BOOLEAN IsImmediateMessage,
BOOLEAN ShowCurrentSystemTime,
BOOLEAN Priority,
const CHAR * Fmt,
... )

routines callback for preparing and sending message to queue

Prepare a printf-style message mapping and send string messages and tracing for logging and monitoring.

Parameters
OperationCode
IsImmediateMessage
ShowCurrentSystemTime
Priority
Fmt
...
Returns
BOOLEAN
Parameters
OperationCodeOptional operation code
IsImmediateMessageShould be sent immediately
ShowCurrentSystemTimeShow system-time
PriorityWhether the message has priority
FmtMessage format-string
...
Returns
BOOLEAN if it was successful then return TRUE, otherwise returns FALSE
34{
35 BOOLEAN Result;
36 va_list ArgList;
37
38 if (g_Callbacks.LogCallbackPrepareAndSendMessageToQueueWrapper == NULL)
39 {
40 //
41 // Ignore sending message to queue
42 //
43 return FALSE;
44 }
45
46 va_start(ArgList, Fmt);
47
48 Result = g_Callbacks.LogCallbackPrepareAndSendMessageToQueueWrapper(OperationCode,
49 IsImmediateMessage,
50 ShowCurrentSystemTime,
51 Priority,
52 Fmt,
53 ArgList);
54 va_end(ArgList);
55
56 return Result;
57}
UCHAR BOOLEAN
Definition BasicTypes.h:35

◆ LogCallbackSendBuffer()

BOOLEAN LogCallbackSendBuffer ( _In_ UINT32 OperationCode,
_In_reads_bytes_(BufferLength) PVOID Buffer,
_In_ UINT32 BufferLength,
_In_ BOOLEAN Priority )

routines callback for sending buffer

Parameters
OperationCode
Buffer
BufferLength
Priority
Returns
BOOLEAN
128{
129 if (g_Callbacks.LogCallbackSendBuffer == NULL)
130 {
131 //
132 // Ignore sending buffer
133 //
134 return FALSE;
135 }
136
137 return g_Callbacks.LogCallbackSendBuffer(OperationCode,
138 Buffer,
139 BufferLength,
140 Priority);
141}

◆ LogCallbackSendMessageToQueue()

BOOLEAN LogCallbackSendMessageToQueue ( UINT32 OperationCode,
BOOLEAN IsImmediateMessage,
CHAR * LogMessage,
UINT32 BufferLen,
BOOLEAN Priority )

routines callback for sending message to queue

Send string messages and tracing for logging and monitoring.

Parameters
OperationCode
IsImmediateMessage
LogMessage
BufferLen
Priority
Returns
BOOLEAN
Parameters
OperationCodeOptional operation code
IsImmediateMessageShould be sent immediately
LogMessageLink of message buffer
BufferLenLength of buffer
PriorityWhether the buffer has priority
Returns
BOOLEAN if it was successful then return TRUE, otherwise returns FALSE
76{
77 if (g_Callbacks.LogCallbackSendMessageToQueue == NULL)
78 {
79 //
80 // Ignore sending message to queue
81 //
82 return FALSE;
83 }
84
85 return g_Callbacks.LogCallbackSendMessageToQueue(OperationCode,
86 IsImmediateMessage,
87 LogMessage,
88 BufferLen,
89 Priority);
90}