#include <fxmessagedispatchum.hpp>
|
| ~FxMessageDispatch () |
|
HRESULT __stdcall | QueryInterface (_In_ REFIID riid, _Out_ LPVOID *ppvObject) |
|
ULONG __stdcall | AddRef () |
|
ULONG __stdcall | Release () |
|
virtual void __stdcall | DispatchPnP (_In_ IWudfIrp *pIrp) |
|
virtual void __stdcall | CreateFile (_In_ IWudfIoIrp *pCreateIrp) |
|
virtual void __stdcall | DeviceControl (_In_ IWudfIoIrp *pIrp, _In_opt_ IUnknown *pFxContext) |
|
virtual void __stdcall | ReadFile (_In_ IWudfIoIrp *pIrp, _In_opt_ IUnknown *pFxContext) |
|
virtual void __stdcall | WriteFile (_In_ IWudfIoIrp *pIrp, _In_opt_ IUnknown *pFxContext) |
|
virtual void __stdcall | CleanupFile (_In_ IWudfIoIrp *pIrp, _In_ IUnknown *pFxContext) |
|
virtual void __stdcall | CloseFile (_In_ IWudfIoIrp *pIrp, _In_ IUnknown *pFxContext) |
|
virtual VOID __stdcall | GetPreferredTransferMode (_Out_ UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL *RetrievalMode, _Out_ UMINT::WDF_DEVICE_IO_TYPE *RWPreference, _Out_ UMINT::WDF_DEVICE_IO_TYPE *IoctlPreference) |
|
virtual void __stdcall | FlushBuffers (_In_ IWudfIoIrp *pIrp, _In_opt_ IUnknown *pFxContext) |
|
virtual void __stdcall | QueryInformationFile (_In_ IWudfIoIrp *pIrp, _In_opt_ IUnknown *pFxContext) |
|
virtual void __stdcall | SetInformationFile (_In_ IWudfIoIrp *pIrp, _In_opt_ IUnknown *pFxContext) |
|
virtual NTSTATUS __stdcall | ProcessWmiPowerQueryOrSetData (_In_ RdWmiPowerAction Action, _Out_ BOOLEAN *QueryResult) |
|
virtual WUDF_INTERFACE_CONTEXT __stdcall | RemoteInterfaceArrival (_In_ LPCGUID pDeviceInterfaceGuid, _In_ PCWSTR pSymbolicLink) |
|
virtual void __stdcall | RemoteInterfaceRemoval (_In_ WUDF_INTERFACE_CONTEXT RemoteInterfaceID) |
|
virtual BOOL __stdcall | TransportQueryID (_In_ DWORD Id, _In_ PVOID DataBuffer, _In_ SIZE_T cbDataBufferSize) |
|
virtual ULONG __stdcall | GetDirectTransferThreshold (VOID) |
|
virtual void __stdcall | PoFxDevicePowerRequired (VOID) |
|
virtual void __stdcall | PoFxDevicePowerNotRequired (VOID) |
|
PDRIVER_OBJECT_UM | GetDriverObject (VOID) |
|
MdDeviceObject | GetDeviceObject (VOID) |
|
PVOID | operator new (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals) |
|
PVOID | operator new (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in POOL_TYPE PoolType) |
|
VOID | operator delete (__in PVOID pointer) |
|
PVOID | operator new[] (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals) |
|
VOID | operator delete[] (__in PVOID pointer) |
|
Definition at line 33 of file fxmessagedispatchum.hpp.
◆ FxMessageDispatch()
FxMessageDispatch::FxMessageDispatch |
( |
_In_ FxDevice * |
Device | ) |
|
|
inlineprivate |
◆ ~FxMessageDispatch()
FxMessageDispatch::~FxMessageDispatch |
( |
| ) |
|
|
inline |
◆ _CreateAndInitialize()
Definition at line 44 of file fxmessagedispatchum.cpp.
49{
53
54 *ppWudfDispatcher =
NULL;
55
57 if (
NULL == pWudfDispatcher) {
60 "Memory allocation failure. Cannot create Dispatcher object.\n");
61 goto Done;
62 }
63
64 *ppWudfDispatcher = pWudfDispatcher;
65
66Done:
67
70 }
71 else {
73 }
74
76}
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define TRACE_LEVEL_ERROR
◆ _GetDispatcherItf()
Definition at line 376 of file fxmessagedispatchum.cpp.
379{
380 IFxMessageDispatch * pIFxMessageDispatch =
NULL;
382 (
PVOID*)&pIFxMessageDispatch);
384 pIFxMessageDispatch->
Release();
385 return pIFxMessageDispatch;
386}
FX_VERIFY(INTERNAL, CHECK_NOT_NULL(LoaderInterface->pIWudfHost))
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
◆ _GetObjFromItf()
Definition at line 357 of file fxmessagedispatchum.cpp.
360{
364 reinterpret_cast<void**>(&pWudfDispatcher)
365 );
368 return pWudfDispatcher;
369}
ULONG __stdcall Release()
const GUID IID_FxMessageDispatch
◆ AddRef()
ULONG FxMessageDispatch::AddRef |
( |
| ) |
|
◆ CleanupFile()
Definition at line 217 of file fxmessagedispatchum.cpp.
221{
223}
return pDevice GetDeviceObject()
return pDriver GetDriverObject()
◆ CloseFile()
◆ CreateFile()
void FxMessageDispatch::CreateFile |
( |
_In_ IWudfIoIrp * |
pCreateIrp | ) |
|
|
virtual |
◆ DeviceControl()
◆ DispatchPnP()
void FxMessageDispatch::DispatchPnP |
( |
_In_ IWudfIrp * |
pIrp | ) |
|
|
virtual |
◆ FlushBuffers()
◆ GetDeviceObject()
◆ GetDirectTransferThreshold()
ULONG FxMessageDispatch::GetDirectTransferThreshold |
( |
VOID |
| ) |
|
|
virtual |
◆ GetDriverObject()
Definition at line 223 of file fxmessagedispatchum.hpp.
226 {
228 }
__inline FxDriver * GetDriver(VOID)
__inline MdDriverObject GetDriverObject(VOID)
◆ GetPreferredTransferMode()
VOID FxMessageDispatch::GetPreferredTransferMode |
( |
_Out_ UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL * |
RetrievalMode, |
|
|
_Out_ UMINT::WDF_DEVICE_IO_TYPE * |
RWPreference, |
|
|
_Out_ UMINT::WDF_DEVICE_IO_TYPE * |
IoctlPreference |
|
) |
| |
|
virtual |
Definition at line 270 of file fxmessagedispatchum.cpp.
275{
277 RetrievalMode,
280}
static VOID GetPreferredTransferMode(_In_ MdDeviceObject DeviceObject, _Out_ UMINT::WDF_DEVICE_IO_BUFFER_RETRIEVAL *RetrievalMode, _Out_ WDF_DEVICE_IO_TYPE *RWPreference, _Out_ WDF_DEVICE_IO_TYPE *IoctlPreference)
enum _WDF_DEVICE_IO_TYPE WDF_DEVICE_IO_TYPE
◆ PoFxDevicePowerNotRequired()
void FxMessageDispatch::PoFxDevicePowerNotRequired |
( |
VOID |
| ) |
|
|
virtual |
Definition at line 341 of file fxmessagedispatchum.cpp.
344{
346}
static void PoFxDevicePowerNotRequired(_In_ MdDeviceObject DeviceObject)
◆ PoFxDevicePowerRequired()
void FxMessageDispatch::PoFxDevicePowerRequired |
( |
VOID |
| ) |
|
|
virtual |
Definition at line 333 of file fxmessagedispatchum.cpp.
336{
338}
static void PoFxDevicePowerRequired(_In_ MdDeviceObject DeviceObject)
◆ ProcessWmiPowerQueryOrSetData()
Definition at line 291 of file fxmessagedispatchum.cpp.
295{
297}
NTSTATUS ProcessWmiPowerQueryOrSetData(_In_ RdWmiPowerAction Action, _Out_ BOOLEAN *QueryResult)
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
◆ QueryInformationFile()
◆ QueryInterface()
Definition at line 120 of file fxmessagedispatchum.cpp.
124{
127 }
128
131 }
132 else if ( iid == IID_IFxMessageDispatch ) {
133 *
ppv =
static_cast<IFxMessageDispatch *
> (
this);
134 }
135 else if ( iid == IID_IFxMessageDispatch2 ) {
136 *
ppv =
static_cast<IFxMessageDispatch2 *
> (
this);
137 }
140 }
141 else {
144 }
145
148}
◆ ReadFile()
◆ Release()
ULONG FxMessageDispatch::Release |
( |
| ) |
|
Definition at line 96 of file fxmessagedispatchum.cpp.
97{
99
100 if (0 == cRefs) {
101
102
103
104
105
107 }
108
109
110
111
112
113
115
116 return cRefs;
117}
#define InterlockedDecrement
Referenced by _GetObjFromItf().
◆ RemoteInterfaceArrival()
Definition at line 300 of file fxmessagedispatchum.cpp.
304{
306 pDeviceInterfaceGuid,
307 pSymbolicLink);
308}
static WUDF_INTERFACE_CONTEXT RemoteInterfaceArrival(_In_ IWudfDevice *DeviceObject, _In_ LPCGUID DeviceInterfaceGuid, _In_ PCWSTR SymbolicLink)
◆ RemoteInterfaceRemoval()
Definition at line 311 of file fxmessagedispatchum.cpp.
314{
316 RemoteInterfaceID);
317}
static void RemoteInterfaceRemoval(_In_ IWudfDevice *DeviceObject, _In_ WUDF_INTERFACE_CONTEXT RemoteInterfaceID)
◆ SetInformationFile()
◆ TransportQueryID()
Definition at line 320 of file fxmessagedispatchum.cpp.
325{
328 DataBuffer,
329 cbDataBufferSize);
330}
static BOOL TransportQueryId(_In_ IWudfDevice *DeviceObject, _In_ DWORD Id, _In_ PVOID DataBuffer, _In_ SIZE_T cbDataBufferSize)
◆ WriteFile()
◆ m_cRefs
LONG FxMessageDispatch::m_cRefs |
|
private |
◆ m_Device
The documentation for this class was generated from the following files: