1 /*++
2 
3 Copyright (c) Microsoft Corporation.  All rights reserved.
4 
5 Module Name:
6 
7     FxDeviceControlAPI.cpp
8 
9 Abstract:
10 
11     This module implements external DDIs for control devices
12 
13 Author:
14 
15 
16 
17 Environment:
18 
19     Both kernel and user mode
20 
21 Revision History:
22 
23 --*/
24 
25 #include "coreprivshared.hpp"
26 
27 extern "C" {
28 // #include "FxDeviceControlAPI.tmh"
29 }
30 
31 extern "C" {
32 
__drv_maxIRQL(DISPATCH_LEVEL)33 __drv_maxIRQL(DISPATCH_LEVEL)
34 VOID
35 STDCALL
36 WDFEXPORT(WdfControlFinishInitializing)(
37     __in
38     PWDF_DRIVER_GLOBALS DriverGlobals,
39     __in
40     WDFDEVICE Device
41     )
42 {
43     PFX_DRIVER_GLOBALS pFxDriverGlobals;
44     FxDevice* pDevice;
45 
46     FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals),
47                                    Device,
48                                    FX_TYPE_DEVICE,
49                                    (PVOID*) &pDevice,
50                                    &pFxDriverGlobals);
51 
52     MxDeviceObject device(pDevice->GetDeviceObject());
53 
54     if (pDevice->IsLegacy()) {
55         // pDevice->m_PkgWmi->Register(); __REACTOS__
56         device.SetFlags(device.GetFlags() & ~DO_DEVICE_INITIALIZING);
57     }
58     else {
59         DoTraceLevelMessage(
60             pFxDriverGlobals, TRACE_LEVEL_ERROR, TRACINGDEVICE,
61             "WDFDEVICE %p not a control device", Device);
62         FxVerifierDbgBreakPoint(pFxDriverGlobals);
63     }
64 }
65 
66 } // entire extern "C" for the file
67 
68