Sample Code
Windows Driver Samples/ Toaster Sample Driver/ C++/ umdf/ Toastmon/ Driver.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 | /*++ Copyright (C) Microsoft Corporation, All Rights Reserved Module Name: Driver.h Abstract: This module contains the type definitions for the UMDF sample's driver callback class. Environment: Windows User-Mode Driver Framework (WUDF) --*/ #pragma once // // This class handles driver events for the sample. In particular // it supports the OnDeviceAdd event, which occurs when the driver is called // to setup per-device handlers for a new device stack. // class CMyDriver : public CUnknown, public IDriverEntry { // // Private data members. // private : // // Private methods. // private : // // Returns a referenced pointer to the IDriverEntry interface. // IDriverEntry * QueryIDriverEntry( VOID ) { AddRef(); return static_cast <IDriverEntry*>( this ); } HRESULT Initialize( VOID ); // // Public methods // public : // // The factory method used to create an instance of this driver. // static HRESULT CreateInstance( _Out_ PCMyDriver * MyDriver ); // // COM methods // public : // // IDriverEntry methods // virtual HRESULT STDMETHODCALLTYPE OnInitialize( _In_ IWDFDriver * /* FxDriver */ ) { return S_OK; } virtual HRESULT STDMETHODCALLTYPE OnDeviceAdd( _In_ IWDFDriver * FxDriver, _In_ IWDFDeviceInitialize * FxDeviceInit ); virtual VOID STDMETHODCALLTYPE OnDeinitialize( _In_ IWDFDriver * /* FxDriver */ ) { return ; } // // IUnknown methods. // // We have to implement basic ones here that redirect to the // base class because of the multiple inheritance. // 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 ); }; |
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