Sample Code
Windows Driver Samples/ Toaster Sample Driver/ C++/ umdf/ Toastmon/ Device.h/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | /*++ Copyright (C) Microsoft Corporation, All Rights Reserved Module Name: Device.h Abstract: This module contains the type definitions for the UMDF sample driver's device callback class. Environment: Windows User-Mode Driver Framework (WUDF) --*/ #pragma once #include "initguid.h" //{781EF630-72B2-11d2-B852-00C04FAD5171} DEFINE_GUID(GUID_DEVINTERFACE_TOASTER, 0x781EF630, 0x72B2, 0x11d2, 0xB8, 0x52, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71); // // Class for the sample device. // class CMyDevice : public CUnknown, public IPnpCallbackRemoteInterfaceNotification { // // Private data members. // private : // // Weak reference to the WDF device object. // IWDFDevice2 *m_FxDevice; // // Weak reference to the WDF driver object // IWDFDriver *m_FxDriver; // // Head of remote target list // LIST_ENTRY m_MyRemoteTargets; // // Private methods. // private : // // Protected methods // protected : CMyDevice( VOID ) : m_FxDevice(NULL), m_FxDriver(NULL) { InitializeListHead(&m_MyRemoteTargets); } HRESULT Initialize( _In_ IWDFDriver * FxDriver, _In_ IWDFDeviceInitialize * FxDeviceInit ); // // Public methods // public : // // The factory method used to create an instance of this driver. // static HRESULT CreateInstance( _In_ IWDFDriver * FxDriver, _In_ IWDFDeviceInitialize * FxDeviceInit, _Out_ PCMyDevice * MyDevice ); HRESULT Configure( VOID ); ~CMyDevice( VOID ) { ATLASSERT(IsListEmpty(&m_MyRemoteTargets)); } // // COM methods // public : // // IUnknown methods. // virtual ULONG STDMETHODCALLTYPE AddRef( VOID ) { return __super::AddRef(); } _At_( this , __drv_freesMem(object)) virtual ULONG STDMETHODCALLTYPE Release( VOID ) { return __super::Release(); } virtual HRESULT STDMETHODCALLTYPE QueryInterface( _In_ REFIID InterfaceId, _Out_ PVOID *Object ); // // IPnpCallbackRemoteInterfaceNotification // void STDMETHODCALLTYPE OnRemoteInterfaceArrival( _In_ IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit ); IPnpCallbackRemoteInterfaceNotification * QueryIPnpCallbackRemoteInterfaceNotification( VOID ) { AddRef(); return static_cast <IPnpCallbackRemoteInterfaceNotification*>( this ); } }; |
Our Services
-
What our customers say about us?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials