HyperDbg Debugger
|
All the dpc routines which relates to executing on a single core for multi-core you can use Broadcast.c. More...
#include "pch.h"
Functions | |
NTSTATUS | DpcRoutineRunTaskOnSingleCore (UINT32 CoreNumber, PVOID Routine, PVOID DeferredContext) |
This function synchronize the function execution for a single core You should only used it for one core, not in multiple threads simultaneously The function that needs to use this feature (Routine parameter function) should have the when it ends : | |
VOID | DpcRoutinePerformWriteMsr (KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) |
Broadcast msr write. | |
VOID | DpcRoutinePerformReadMsr (KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) |
Broadcast msr read. | |
VOID | DpcRoutineWriteMsrToAllCores (KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) |
Broadcast Msr Write. | |
VOID | DpcRoutineReadMsrToAllCores (KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) |
Broadcast Msr read. | |
VOID | DpcRoutineVmExitAndHaltSystemAllCores (KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) |
vm-exit and halt the system | |
Variables | |
volatile LONG | OneCoreLock |
lock for one core execution | |
All the dpc routines which relates to executing on a single core for multi-core you can use Broadcast.c.
VOID DpcRoutinePerformReadMsr | ( | KDPC * | Dpc, |
PVOID | DeferredContext, | ||
PVOID | SystemArgument1, | ||
PVOID | SystemArgument2 ) |
Broadcast msr read.
Dpc | |
DeferredContext | |
SystemArgument1 | |
SystemArgument2 |
VOID DpcRoutinePerformWriteMsr | ( | KDPC * | Dpc, |
PVOID | DeferredContext, | ||
PVOID | SystemArgument1, | ||
PVOID | SystemArgument2 ) |
Broadcast msr write.
Dpc | |
DeferredContext | |
SystemArgument1 | |
SystemArgument2 |
VOID DpcRoutineReadMsrToAllCores | ( | KDPC * | Dpc, |
PVOID | DeferredContext, | ||
PVOID | SystemArgument1, | ||
PVOID | SystemArgument2 ) |
Broadcast Msr read.
Dpc | |
DeferredContext | |
SystemArgument1 | |
SystemArgument2 |
NTSTATUS DpcRoutineRunTaskOnSingleCore | ( | UINT32 | CoreNumber, |
PVOID | Routine, | ||
PVOID | DeferredContext ) |
This function synchronize the function execution for a single core You should only used it for one core, not in multiple threads simultaneously The function that needs to use this feature (Routine parameter function) should have the when it ends :
SpinlockUnlock(&OneCoreLock);
CoreNumber | core number that the target function should run on it |
Routine | the target function that should be ran |
DeferredContext | an optional parameter to Routine |
VOID DpcRoutineVmExitAndHaltSystemAllCores | ( | KDPC * | Dpc, |
PVOID | DeferredContext, | ||
PVOID | SystemArgument1, | ||
PVOID | SystemArgument2 ) |
vm-exit and halt the system
Dpc | |
DeferredContext | |
SystemArgument1 | |
SystemArgument2 |
VOID DpcRoutineWriteMsrToAllCores | ( | KDPC * | Dpc, |
PVOID | DeferredContext, | ||
PVOID | SystemArgument1, | ||
PVOID | SystemArgument2 ) |
Broadcast Msr Write.
Dpc | |
DeferredContext | |
SystemArgument1 | |
SystemArgument2 |
volatile LONG OneCoreLock |
lock for one core execution