[WDF] Add Windows Driver Framework files
[reactos.git] / sdk / lib / drivers / wdf / shared / inc / primitives / common / mxdriverobject.h
diff --git a/sdk/lib/drivers/wdf/shared/inc/primitives/common/mxdriverobject.h b/sdk/lib/drivers/wdf/shared/inc/primitives/common/mxdriverobject.h
new file mode 100644 (file)
index 0000000..3a92469
--- /dev/null
@@ -0,0 +1,107 @@
+/*++
+
+Copyright (c) Microsoft Corporation
+
+ModuleName:
+
+    MxDrierObjet.h
+
+Abstract:
+
+    Mode agnostic definition of Driver Object
+
+    See MxDriverObjectKm.h and MxDriverObjectUm.h/cpp for mode
+    specific implementations
+
+--*/
+
+#pragma once
+
+//
+// Forward declare enum
+//
+enum FxDriverObjectUmFlags : USHORT;
+
+class MxDriverObject
+{
+private:
+    //
+    // MdDeviceObject is typedef'ed to appropriate type for the mode
+    // in the mode specific file
+    //
+    MdDriverObject m_DriverObject;
+
+public:
+    __inline
+    MxDriverObject(
+        __in MdDriverObject DriverObject
+        ) :
+        m_DriverObject(DriverObject)
+    {
+    }
+
+    __inline
+    MxDriverObject(
+        VOID
+        ) :
+        m_DriverObject(NULL)
+    {
+    }
+
+    __inline
+    MdDriverObject
+    GetObject(
+        VOID
+        )
+    {
+        return m_DriverObject;
+    }
+
+    __inline
+    VOID
+    SetObject(
+        __in_opt MdDriverObject DriverObject
+        )
+    {
+        m_DriverObject = DriverObject;
+    }
+
+    PVOID
+    GetDriverExtensionAddDevice(
+        VOID
+        );
+
+    VOID
+    SetDriverExtensionAddDevice(
+        _In_ MdDriverAddDevice Value
+        );
+
+    MdDriverUnload
+    GetDriverUnload(
+        VOID
+        );
+
+    VOID
+    SetDriverUnload(
+        _In_ MdDriverUnload Value
+        );
+
+    VOID
+    SetMajorFunction(
+        _In_ UCHAR i,
+        _In_ MdDriverDispatch Value
+        );
+
+    VOID
+    SetDriverObjectFlag(
+        _In_ FxDriverObjectUmFlags Flag
+        );
+
+    BOOLEAN
+    IsDriverObjectFlagSet(
+        _In_ FxDriverObjectUmFlags Flag
+        );
+
+
+};
+