[WDF] Add Windows Driver Framework files
[reactos.git] / sdk / lib / drivers / wdf / shared / inc / private / km / fxdmaenablercallbacks.hpp
diff --git a/sdk/lib/drivers/wdf/shared/inc/private/km/fxdmaenablercallbacks.hpp b/sdk/lib/drivers/wdf/shared/inc/private/km/fxdmaenablercallbacks.hpp
new file mode 100644 (file)
index 0000000..1317244
--- /dev/null
@@ -0,0 +1,254 @@
+/*++
+
+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