ReactOS  0.4.15-dev-3303-g1ade494
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 }
return STATUS_NOT_SUPPORTED
LONG NTSTATUS
Definition: precomp.h:26
#define ASSERT(a)
Definition: mode.c:44
_In_ PTRANSFER_PACKET _In_ ULONG _In_ PIRP OriginalIrp
Definition: classp.h:1757
__inline MdDeviceObject GetObject(VOID)
__inline VOID SetObject(__in_opt MdDeviceObject DeviceObject)
VOID DereferenceObject()
#define NULL
Definition: types.h:112
static SERVICE_STATUS status
Definition: service.c:31
Definition: ps.c:97

Referenced by _DeviceUsageNotificationWorkItem(), and SendDeviceUsageNotification().

Variable Documentation

◆ _DeviceUsageNotificationWorkItem

IO_WORKITEM_ROUTINE _DeviceUsageNotificationWorkItem

Definition at line 75 of file pnpprivkm.hpp.