reactos/sdk/lib/drivers/wdf/shared/inc/private/km/fxdmaenablercallbacks.hpp

255 lines
4.4 KiB
C++
Raw Normal View History

/*++
Copyright (c) Microsoft Corporation
Module Name:
FxDmaEnablerCallbacks.hpp
Abstract:
This module implements the FxDmaEnabler object callbacks
Environment:
kernel mode only
Revision History:
--*/
#ifndef _FXDMAENABLERCALLBACKS_HPP
#define _FXDMAENABLERCALLBACKS_HPP
enum FxDmaEnablerCallbacks {
FxEvtDmaEnablerInvalid,
FxEvtDmaEnablerFill,
FxEvtDmaEnablerFlush,
FxEvtDmaEnablerEnable,
FxEvtDmaEnablerDisable,
FxEvtDmaEnablerSelfManagedIoStart,
FxEvtDmaEnablerSelfManagedIoStop,
};
//
// EvtDmaEnablerFill callback delegate
//
class FxEvtDmaEnablerFillCallback : public FxCallback {
public:
PFN_WDF_DMA_ENABLER_FILL m_Method;
NTSTATUS m_Status;
FxEvtDmaEnablerFillCallback(
VOID
) :
FxCallback(),
m_Method(NULL),
m_Status(STATUS_SUCCESS)
{
}
NTSTATUS
Invoke(
__in WDFDMAENABLER Handle
)
{
if (m_Method) {
CallbackStart();
m_Status = m_Method( Handle );
CallbackEnd();
}
else {
m_Status = STATUS_SUCCESS;
}
return m_Status;
}
};
//
// EvtDmaEnablerFlush callback delegate
//
class FxEvtDmaEnablerFlushCallback : public FxCallback {
public:
PFN_WDF_DMA_ENABLER_FLUSH m_Method;
NTSTATUS m_Status;
FxEvtDmaEnablerFlushCallback(
VOID
) :
FxCallback(),
m_Method(NULL),
m_Status(STATUS_SUCCESS)
{
}
NTSTATUS
Invoke(
__in WDFDMAENABLER Handle
)
{
if (m_Method) {
CallbackStart();
m_Status = m_Method( Handle );
CallbackEnd();
}
else {
m_Status = STATUS_SUCCESS;
}
return m_Status;
}
};
//
// EvtDmaEnablerEnable callback delegate
//
class FxEvtDmaEnablerEnableCallback : public FxCallback {
public:
PFN_WDF_DMA_ENABLER_ENABLE m_Method;
NTSTATUS m_Status;
FxEvtDmaEnablerEnableCallback(
VOID
) :
FxCallback(),
m_Method(NULL),
m_Status(STATUS_SUCCESS)
{
}
NTSTATUS
Invoke(
__in WDFDMAENABLER Handle
)
{
if (m_Method) {
CallbackStart();
m_Status = m_Method( Handle );
CallbackEnd();
}
else {
m_Status = STATUS_SUCCESS;
}
return m_Status;
}
};
//
// EvtDmaEnablerDisable callback delegate
//
class FxEvtDmaEnablerDisableCallback : public FxCallback {
public:
PFN_WDF_DMA_ENABLER_DISABLE m_Method;
NTSTATUS m_Status;
FxEvtDmaEnablerDisableCallback(
VOID
) :
FxCallback(),
m_Method(NULL),
m_Status(STATUS_SUCCESS)
{
}
NTSTATUS
Invoke(
__in WDFDMAENABLER Handle
)
{
if (m_Method) {
CallbackStart();
m_Status = m_Method( Handle );
CallbackEnd();
}
else {
m_Status = STATUS_SUCCESS;
}
return m_Status;
}
};
//
// EvtDmaEnablerSelfManagedIoStart callback delegate
//
class FxEvtDmaEnablerSelfManagedIoStartCallback : public FxCallback {
public:
PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START m_Method;
NTSTATUS m_Status;
FxEvtDmaEnablerSelfManagedIoStartCallback(
VOID
) :
FxCallback(),
m_Method(NULL),
m_Status(STATUS_SUCCESS)
{
}
NTSTATUS
Invoke(
__in WDFDMAENABLER Handle
)
{
if (m_Method) {
CallbackStart();
m_Status = m_Method( Handle );
CallbackEnd();
}
else {
m_Status = STATUS_SUCCESS;
}
return m_Status;
}
};
//
// EvtDmaEnablerSelfManagedIoStop callback delegate
//
class FxEvtDmaEnablerSelfManagedIoStopCallback : public FxCallback {
public:
PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP m_Method;
NTSTATUS m_Status;
FxEvtDmaEnablerSelfManagedIoStopCallback(
VOID
) :
FxCallback(),
m_Method(NULL),
m_Status(STATUS_SUCCESS)
{
}
NTSTATUS
Invoke(
__in WDFDMAENABLER Handle
)
{
if (m_Method) {
CallbackStart();
m_Status = m_Method( Handle );
CallbackEnd();
}
else {
m_Status = STATUS_SUCCESS;
}
return m_Status;
}
};
#endif // _FXDMAENABLERCALLBACKS_HPP