ReactOS 0.4.15-dev-7958-gcd0bb1a
pnpprivkm.hpp File Reference
#include "wdfdmaenabler.h"
#include "fxirpqueue.hpp"
#include "fxcallback.hpp"
#include "fxcallbackspinlock.hpp"
#include "fxcallbackmutexlock.hpp"
#include "fxpackage.hpp"
#include "ifxmemory.hpp"
#include "fxrequestcontext.hpp"
#include "fxrequestcontexttypes.h"
#include "fxrequestbase.hpp"
#include "fxrequest.hpp"
#include "fxpkgpnp.hpp"
#include "fxpkgio.hpp"
#include "fxioqueue.hpp"
#include "fxdmaenabler.hpp"
#include "fxsystemworkitem.hpp"
Include dependency graph for pnpprivkm.hpp:

Go to the source code of this file.

Classes

struct  _STACK_DEVICE_CAPABILITIES
 
struct  FxUsageWorkitemParameters
 

Typedefs

typedef EVT_SYSTEMWORKITEM * PFN_WDF_SYSTEMWORKITEM
 
typedef struct _STACK_DEVICE_CAPABILITIES STACK_DEVICE_CAPABILITIES
 
typedef struct _STACK_DEVICE_CAPABILITIESPSTACK_DEVICE_CAPABILITIES
 

Functions

 __drv_functionClass (EVT_SYSTEMWORKITEM) __drv_maxIRQL(PASSIVE_LEVEL) __drv_maxFunctionIRQL(DISPATCH_LEVEL) __drv_sameIRQL typedef VOID EVT_SYSTEMWORKITEM(__in PVOID Parameter)
 
_Must_inspect_result_ NTSTATUS SendDeviceUsageNotificationWorker (__in MxDeviceObject *RelatedDevice, __inout FxIrp *RelatedIrp, __in FxIrp *OriginalIrp, __in BOOLEAN Revert)
 

Variables

IO_WORKITEM_ROUTINE _DeviceUsageNotificationWorkItem
 

Typedef Documentation

◆ PFN_WDF_SYSTEMWORKITEM

typedef EVT_SYSTEMWORKITEM* PFN_WDF_SYSTEMWORKITEM

Definition at line 25 of file pnpprivkm.hpp.

◆ PSTACK_DEVICE_CAPABILITIES

◆ STACK_DEVICE_CAPABILITIES

Function Documentation

◆ __drv_functionClass()

__drv_functionClass ( EVT_SYSTEMWORKITEM  )

◆ SendDeviceUsageNotificationWorker()

_Must_inspect_result_ NTSTATUS SendDeviceUsageNotificationWorker ( __in MxDeviceObject RelatedDevice,
__inout FxIrp RelatedIrp,
__in FxIrp OriginalIrp,
__in BOOLEAN  Revert 
)

Definition at line 264 of file supportkm.cpp.

270{
271 MxDeviceObject relatedTopOfStack;
273
274 relatedTopOfStack.SetObject(RelatedDevice->GetAttachedDeviceReference());
275 ASSERT(relatedTopOfStack.GetObject() != NULL);
276
277 //
278 // Initialize the new IRP with the stack data from the current IRP and
279 // and send it to the parent stack.
280 //
281 RelatedIrp->InitNextStackUsingStack(OriginalIrp);
282
283 if (Revert) {
284 RelatedIrp->SetParameterUsageNotificationInPath(
285 !RelatedIrp->GetNextStackParameterUsageNotificationInPath());
286 }
287
288 RelatedIrp->SetStatus(STATUS_NOT_SUPPORTED);
289
290 status = RelatedIrp->SendIrpSynchronously(relatedTopOfStack.GetObject());
291
292 relatedTopOfStack.DereferenceObject();
293
294 return status;
295}
LONG NTSTATUS
Definition: precomp.h:26
__inline VOID SetObject(__in_opt MdDeviceObject DeviceObject)
VOID DereferenceObject()
__inline MdDeviceObject GetObject(VOID)
_In_ PTRANSFER_PACKET _In_ ULONG _In_ PIRP OriginalIrp
Definition: classp.h:1757
#define NULL
Definition: types.h:112
#define ASSERT(a)
Definition: mode.c:44
#define STATUS_NOT_SUPPORTED
Definition: ntstatus.h:423
Definition: ps.c:97

Referenced by _DeviceUsageNotificationWorkItem(), and SendDeviceUsageNotification().

Variable Documentation

◆ _DeviceUsageNotificationWorkItem

IO_WORKITEM_ROUTINE _DeviceUsageNotificationWorkItem

Definition at line 75 of file pnpprivkm.hpp.

Referenced by SendDeviceUsageNotification().