Sample Code
Windows Driver Samples/ Toaster Sample Driver/ C++/ umdf/ func/ Queue.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 | /*++ Copyright (c) Microsoft Corporation, All Rights Reserved Module Name: Queue.h Abstract: This file contains the class definition for the queue callback object. Environment: Windows User-Mode Driver Framework (WUDF) --*/ #pragma once #include "WUDFToaster.h" class CQueue : public IQueueCallbackDeviceIoControl, public IQueueCallbackRead, public IQueueCallbackWrite { public : CQueue() : m_cRefs(0) { } public : // // Static method that creates a queue callback object. // static HRESULT CreateInstance(_Out_ IUnknown **ppUkwn) { *ppUkwn = NULL; #pragma warning( suppress : 6014 )// PFD ISSUE: counted memory locks CQueue *pMyQueue = new CQueue(); if (NULL == pMyQueue) { return E_OUTOFMEMORY; } return (pMyQueue->QueryInterface(__uuidof(IUnknown), ( void **)ppUkwn )); } // // IUnknown // virtual HRESULT __stdcall QueryInterface(_In_ REFIID riid, _Out_ LPVOID * ppvObject); virtual ULONG __stdcall AddRef(); _At_( this , __drv_freesMem(object)) virtual ULONG __stdcall Release(); // // IQueueCallbackDeviceIoControl // virtual void __stdcall OnDeviceIoControl( _In_ IWDFIoQueue* pQueue, _In_ IWDFIoRequest* pRequest, _In_ ULONG ControlCode, _In_ SIZE_T InputBufferSizeInBytes, _In_ SIZE_T OutputBufferSizeInBytes ); // // IQueueCallbackRead // virtual void __stdcall OnRead( _In_ IWDFIoQueue *pWdfQueue, _In_ IWDFIoRequest *pWdfRequest, _In_ SIZE_T NumOfBytesToRead ); // // IQueueCallbackWrite // virtual void __stdcall OnWrite( _In_ IWDFIoQueue *pWdfQueue, _In_ IWDFIoRequest *pWdfRequest, _In_ SIZE_T NumOfBytesToWrite ); // // TODO: Add your interfaces here // private : LONG m_cRefs; }; |
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