[WDF] Add Windows Driver Framework files
[reactos.git] / sdk / lib / drivers / wdf / shared / inc / private / common / fxcxdeviceinit.hpp
diff --git a/sdk/lib/drivers/wdf/shared/inc/private/common/fxcxdeviceinit.hpp b/sdk/lib/drivers/wdf/shared/inc/private/common/fxcxdeviceinit.hpp
new file mode 100644 (file)
index 0000000..45499e3
--- /dev/null
@@ -0,0 +1,95 @@
+/*++
+
+Copyright (c) Microsoft Corporation
+
+Module Name:
+
+    FxCxDeviceInit.hpp
+
+Abstract:
+
+
+Author:
+
+
+Environment:
+
+    kernel mode only
+
+Revision History:
+
+--*/
+
+#ifndef __FXCXDEVICEINIT_HPP__
+#define __FXCXDEVICEINIT_HPP__
+
+//
+// Holds class extension file object configuration.
+//
+struct CxFileObjectInit {
+    WDF_FILEOBJECT_CLASS Class;
+
+    WDF_OBJECT_ATTRIBUTES Attributes;
+
+    WDFCX_FILEOBJECT_CONFIG Callbacks;
+
+    WDF_TRI_STATE AutoForwardCleanupClose;
+
+    BOOLEAN Set;
+};
+
+//
+// The typedef for a pointer to this structure is exposed in wdfdevice.h
+//
+struct WDFCXDEVICE_INIT : public FxStump {
+public:
+    WDFCXDEVICE_INIT();
+    ~WDFCXDEVICE_INIT();
+
+    static
+    _Must_inspect_result_
+    PWDFCXDEVICE_INIT
+    _AllocateCxDeviceInit(
+        __in PWDFDEVICE_INIT DeviceInit
+        );
+
+public:
+    //
+    // Class extension init list entry.
+    //
+    LIST_ENTRY              ListEntry;
+
+    //
+    // Client and Cx's globals.
+    //
+    PFX_DRIVER_GLOBALS      ClientDriverGlobals;
+    PFX_DRIVER_GLOBALS      CxDriverGlobals;
+
+    //
+    // Pre-proc info.
+    //
+    FxIrpPreprocessInfo*    PreprocessInfo;
+
+    //
+    // In caller context info.
+    //
+    PFN_WDF_IO_IN_CALLER_CONTEXT IoInCallerContextCallback;
+
+    //
+    // Request attributes info.
+    //
+    WDF_OBJECT_ATTRIBUTES   RequestAttributes;
+
+    //
+    // File object info.
+    //
+    CxFileObjectInit        FileObject;
+
+    //
+    // Set during the device create.
+    //
+    FxCxDeviceInfo*         CxDeviceInfo;
+};
+
+#endif __FXCXDEVICEINIT_HPP__
+