ReactOS 0.4.17-dev-1281-g065abb3
HubTimer Class Reference

#include <hubutil.h>

Collaboration diagram for HubTimer:

Public Types

typedef VOID(NTAPI * PFN_HUB_TIMER_FIRED) (_In_ PVOID Context)
 

Public Member Functions

VOID Initialize (_In_ PFN_HUB_TIMER_FIRED Fired, _In_ PVOID Context)
 
VOID Start (_In_ ULONG Milliseconds)
 
BOOLEAN Cancel ()
 

Static Private Member Functions

static VOID NTAPI DpcRoutine (_In_ PKDPC Dpc, _In_opt_ PVOID Context, _In_opt_ PVOID Argument1, _In_opt_ PVOID Argument2)
 

Private Attributes

KTIMER m_Timer
 
KDPC m_Dpc
 
PFN_HUB_TIMER_FIRED m_Fired
 
PVOID m_Context
 

Detailed Description

Definition at line 87 of file hubutil.h.

Member Typedef Documentation

◆ PFN_HUB_TIMER_FIRED

typedef VOID(NTAPI * HubTimer::PFN_HUB_TIMER_FIRED) (_In_ PVOID Context)

Definition at line 90 of file hubutil.h.

Member Function Documentation

◆ Cancel()

BOOLEAN HubTimer::Cancel ( )
inline

FALSE when the timer already fired and its callback is coming.

Definition at line 115 of file hubutil.h.

116 {
117 return KeCancelTimer(&m_Timer);
118 }
KTIMER m_Timer
Definition: hubutil.h:139
BOOLEAN NTAPI KeCancelTimer(IN OUT PKTIMER Timer)
Definition: timerobj.c:206

Referenced by DeviceMachine::CancelStateTimer(), DeviceMachine::StopTimer(), and PortMachine::StopTimer().

◆ DpcRoutine()

static VOID NTAPI HubTimer::DpcRoutine ( _In_ PKDPC  Dpc,
_In_opt_ PVOID  Context,
_In_opt_ PVOID  Argument1,
_In_opt_ PVOID  Argument2 
)
inlinestaticprivate

Definition at line 124 of file hubutil.h.

129 {
130 HubTimer* Self = (HubTimer*)Context;
131
135
136 Self->m_Fired(Self->m_Context);
137 }
PVOID m_Context
Definition: hubutil.h:142
PFN_HUB_TIMER_FIRED m_Fired
Definition: hubutil.h:141
_In_ PVOID Argument2
Definition: classpnp.h:721
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:697

Referenced by Initialize().

◆ Initialize()

VOID HubTimer::Initialize ( _In_ PFN_HUB_TIMER_FIRED  Fired,
_In_ PVOID  Context 
)
inline

Definition at line 93 of file hubutil.h.

96 {
97 m_Fired = Fired;
101 }
static VOID NTAPI DpcRoutine(_In_ PKDPC Dpc, _In_opt_ PVOID Context, _In_opt_ PVOID Argument1, _In_opt_ PVOID Argument2)
Definition: hubutil.h:124
KDPC m_Dpc
Definition: hubutil.h:140
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:712
VOID NTAPI KeInitializeTimer(OUT PKTIMER Timer)
Definition: timerobj.c:233

◆ Start()

Member Data Documentation

◆ m_Context

PVOID HubTimer::m_Context
private

Definition at line 142 of file hubutil.h.

Referenced by DpcRoutine(), and Initialize().

◆ m_Dpc

KDPC HubTimer::m_Dpc
private

Definition at line 140 of file hubutil.h.

Referenced by Initialize(), and Start().

◆ m_Fired

PFN_HUB_TIMER_FIRED HubTimer::m_Fired
private

Definition at line 141 of file hubutil.h.

Referenced by DpcRoutine(), and Initialize().

◆ m_Timer

KTIMER HubTimer::m_Timer
private

Definition at line 139 of file hubutil.h.

Referenced by Cancel(), Initialize(), and Start().


The documentation for this class was generated from the following file: