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

Broadcasting functions. More...

#include "pch.h"

Functions

VOID BroadcastEnableLbrOnAllCores ()
 Routines to enable LBR on all cores.
VOID BroadcastDisableLbrOnAllCores ()
 Routines to disable LBR on all cores.
VOID BroadcastFlushLbrOnAllCores ()
 Routines to flush LBR on all cores.
VOID BroadcastFilterLbrOptionsOnAllCores (UINT64 LbrFilterOptions)
 Routines to filter LBR option on all cores.
VOID BroadcastEnablePtOnAllCores ()
 Routines to enable PT on all cores.
VOID BroadcastDisablePtOnAllCores ()
 Routines to disable PT on all cores.
VOID BroadcastPausePtOnAllCores ()
 Routines to pause PT tracing on all cores.
VOID BroadcastResumePtOnAllCores ()
 Routines to resume PT tracing on all cores.
VOID BroadcastSizePtOnAllCores (UINT64 *Sizes)
 Routines to snapshot per-CPU PT output positions. The DPC writes its own core's byte count into Sizes[CoreId]; the caller's UINT64 array must hold at least one slot per CPU.
VOID BroadcastDumpPtOnAllCores ()
 Routines to dump PT state on all cores.
VOID BroadcastFlushPtOnAllCores ()
 Routines to flush PT state on all cores.
VOID BroadcastFilterPtOnAllCores (PT_FILTER_OPTIONS *FilterOptions)
 Routines to apply a PT filter on all cores. The same Options pointer is passed to every per-core DPC; KeGenericCallDpc is synchronous so the caller's storage is valid throughout.

Detailed Description

Broadcasting functions.

Author
Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
Version
0.19
Date
2026-04-19

Function Documentation

◆ BroadcastDisableLbrOnAllCores()

VOID BroadcastDisableLbrOnAllCores ( )

Routines to disable LBR on all cores.

Returns
VOID
35{
36 //
37 // Broadcast to all cores
38 //
39 KeGenericCallDpc(DpcRoutineDisableLbr, NULL);
40}
BOOLEAN DpcRoutineDisableLbr(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast disabling LBR.
Definition DpcRoutines.c:79

◆ BroadcastDisablePtOnAllCores()

VOID BroadcastDisablePtOnAllCores ( )

Routines to disable PT on all cores.

Returns
VOID
90{
91 KeGenericCallDpc(DpcRoutineDisablePt, NULL);
92}
BOOLEAN DpcRoutineDisablePt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast disabling PT.
Definition DpcRoutines.c:213

◆ BroadcastDumpPtOnAllCores()

VOID BroadcastDumpPtOnAllCores ( )

Routines to dump PT state on all cores.

Returns
VOID
136{
137 KeGenericCallDpc(DpcRoutineDumpPt, NULL);
138}
BOOLEAN DpcRoutineDumpPt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast dumping PT state.
Definition DpcRoutines.c:296

◆ BroadcastEnableLbrOnAllCores()

VOID BroadcastEnableLbrOnAllCores ( )

Routines to enable LBR on all cores.

Returns
VOID
21{
22 //
23 // Broadcast to all cores
24 //
25 KeGenericCallDpc(DpcRoutineEnableLbr, NULL);
26}
BOOLEAN DpcRoutineEnableLbr(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast enabling LBR.
Definition DpcRoutines.c:24

◆ BroadcastEnablePtOnAllCores()

VOID BroadcastEnablePtOnAllCores ( )

Routines to enable PT on all cores.

Returns
VOID
79{
80 KeGenericCallDpc(DpcRoutineEnablePt, NULL);
81}
BOOLEAN DpcRoutineEnablePt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast enabling PT.
Definition DpcRoutines.c:188

◆ BroadcastFilterLbrOptionsOnAllCores()

VOID BroadcastFilterLbrOptionsOnAllCores ( UINT64 LbrFilterOptions)

Routines to filter LBR option on all cores.

Parameters
LbrFilterOptionsA bitmask of filter options to apply to the LBR branches
Returns
VOID
65{
66 //
67 // Broadcast to all cores
68 //
69 KeGenericCallDpc(DpcRoutineFilterLbrOptions, (PVOID)(UINT_PTR)LbrFilterOptions);
70}
void * PVOID
Definition BasicTypes.h:56
BOOLEAN DpcRoutineFilterLbrOptions(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast updating LBR filter options.
Definition DpcRoutines.c:161

◆ BroadcastFilterPtOnAllCores()

VOID BroadcastFilterPtOnAllCores ( PT_FILTER_OPTIONS * FilterOptions)

Routines to apply a PT filter on all cores. The same Options pointer is passed to every per-core DPC; KeGenericCallDpc is synchronous so the caller's storage is valid throughout.

Returns
VOID
160{
161 KeGenericCallDpc(DpcRoutineFilterPt, (PVOID)FilterOptions);
162}
BOOLEAN DpcRoutineFilterPt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast applying a PT filter to all cores.
Definition DpcRoutines.c:338

◆ BroadcastFlushLbrOnAllCores()

VOID BroadcastFlushLbrOnAllCores ( )

Routines to flush LBR on all cores.

Returns
VOID
49{
50 //
51 // Broadcast to all cores
52 //
53 KeGenericCallDpc(DpcRoutineFlushLbr, NULL);
54}
BOOLEAN DpcRoutineFlushLbr(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast flushing LBR.
Definition DpcRoutines.c:133

◆ BroadcastFlushPtOnAllCores()

VOID BroadcastFlushPtOnAllCores ( )

Routines to flush PT state on all cores.

Returns
VOID
147{
148 KeGenericCallDpc(DpcRoutineFlushPt, NULL);
149}
BOOLEAN DpcRoutineFlushPt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast flushing PT state.
Definition DpcRoutines.c:315

◆ BroadcastPausePtOnAllCores()

VOID BroadcastPausePtOnAllCores ( )

Routines to pause PT tracing on all cores.

Returns
VOID
101{
102 KeGenericCallDpc(DpcRoutinePausePt, NULL);
103}
BOOLEAN DpcRoutinePausePt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast pausing PT.
Definition DpcRoutines.c:232

◆ BroadcastResumePtOnAllCores()

VOID BroadcastResumePtOnAllCores ( )

Routines to resume PT tracing on all cores.

Returns
VOID
112{
113 KeGenericCallDpc(DpcRoutineResumePt, NULL);
114}
BOOLEAN DpcRoutineResumePt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast resuming PT.
Definition DpcRoutines.c:251

◆ BroadcastSizePtOnAllCores()

VOID BroadcastSizePtOnAllCores ( UINT64 * Sizes)

Routines to snapshot per-CPU PT output positions. The DPC writes its own core's byte count into Sizes[CoreId]; the caller's UINT64 array must hold at least one slot per CPU.

Returns
VOID
125{
126 KeGenericCallDpc(DpcRoutineSizePt, (PVOID)Sizes);
127}
BOOLEAN DpcRoutineSizePt(KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Broadcast snapshotting per-CPU PT output position.
Definition DpcRoutines.c:274