reactos/sdk/lib/drivers/wdf/shared/inc/primitives/common/mxtimer.h

96 lines
1.3 KiB
C
Raw Normal View History

/*++
Copyright (c) Microsoft Corporation
ModuleName:
MxTimer.h
Abstract:
Mode agnostic definiton of timer
See MxTimerKm.h and MxTimerUm.h for
mode specific implementations
Author:
Revision History:
--*/
#pragma once
class MxTimer
{
private:
//
// Handle to the timer object
//
MdTimer m_Timer;
public:
__inline
MxTimer(
VOID
);
__inline
~MxTimer(
VOID
);
CHECK_RETURN_IF_USER_MODE
__inline
NTSTATUS
Initialize(
__in_opt PVOID TimerContext,
__in MdDeferredRoutine TimerCallback,
__in LONG Period
);
CHECK_RETURN_IF_USER_MODE
__inline
NTSTATUS
InitializeEx(
__in_opt PVOID TimerContext,
__in MdExtCallbackType TimerCallback,
__in LONG Period,
__in ULONG TolerableDelay,
__in BOOLEAN UseHighResolutionTimer
);
__inline
VOID
Start(
__in LARGE_INTEGER DueTime,
__in ULONG TolerableDelay = 0
);
__inline
BOOLEAN
StartWithReturn(
__in LARGE_INTEGER DueTime,
__in ULONG TolerableDelay = 0
);
_Must_inspect_result_
__inline
BOOLEAN
Stop(
VOID
);
__inline
VOID
FlushQueuedDpcs(
VOID
);
};