2020-09-24 20:51:15 +00:00
|
|
|
/*++
|
|
|
|
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
FxDeviceControlAPI.cpp
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
This module implements external DDIs for control devices
|
|
|
|
|
|
|
|
Author:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Environment:
|
|
|
|
|
|
|
|
Both kernel and user mode
|
|
|
|
|
|
|
|
Revision History:
|
|
|
|
|
|
|
|
--*/
|
|
|
|
|
|
|
|
#include "coreprivshared.hpp"
|
|
|
|
|
|
|
|
extern "C" {
|
2020-10-16 03:30:51 +00:00
|
|
|
// #include "FxDeviceControlAPI.tmh"
|
2020-09-24 20:51:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
extern "C" {
|
|
|
|
|
|
|
|
__drv_maxIRQL(DISPATCH_LEVEL)
|
|
|
|
VOID
|
2020-10-16 03:30:51 +00:00
|
|
|
STDCALL
|
2020-09-24 20:51:15 +00:00
|
|
|
WDFEXPORT(WdfControlFinishInitializing)(
|
|
|
|
__in
|
|
|
|
PWDF_DRIVER_GLOBALS DriverGlobals,
|
|
|
|
__in
|
|
|
|
WDFDEVICE Device
|
|
|
|
)
|
|
|
|
{
|
|
|
|
PFX_DRIVER_GLOBALS pFxDriverGlobals;
|
|
|
|
FxDevice* pDevice;
|
|
|
|
|
|
|
|
FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals),
|
|
|
|
Device,
|
|
|
|
FX_TYPE_DEVICE,
|
|
|
|
(PVOID*) &pDevice,
|
|
|
|
&pFxDriverGlobals);
|
|
|
|
|
|
|
|
MxDeviceObject device(pDevice->GetDeviceObject());
|
|
|
|
|
|
|
|
if (pDevice->IsLegacy()) {
|
2020-10-16 03:30:51 +00:00
|
|
|
// pDevice->m_PkgWmi->Register(); __REACTOS__
|
2020-09-24 20:51:15 +00:00
|
|
|
device.SetFlags(device.GetFlags() & ~DO_DEVICE_INITIALIZING);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
DoTraceLevelMessage(
|
|
|
|
pFxDriverGlobals, TRACE_LEVEL_ERROR, TRACINGDEVICE,
|
|
|
|
"WDFDEVICE %p not a control device", Device);
|
|
|
|
FxVerifierDbgBreakPoint(pFxDriverGlobals);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} // entire extern "C" for the file
|
|
|
|
|