diff options
Diffstat (limited to 'general/toaster/toastDrv/umdf/func/Queue.cpp')
| -rw-r--r-- | general/toaster/toastDrv/umdf/func/Queue.cpp | 283 |
1 files changed, 0 insertions, 283 deletions
diff --git a/general/toaster/toastDrv/umdf/func/Queue.cpp b/general/toaster/toastDrv/umdf/func/Queue.cpp deleted file mode 100644 index dec296a0..00000000 --- a/general/toaster/toastDrv/umdf/func/Queue.cpp +++ /dev/null @@ -1,283 +0,0 @@ -/*++ - - Copyright (c) Microsoft Corporation, All Rights Reserved - - Module Name: - - Queue.cpp - - Abstract: - - This file contains the queue callback object implementation. - - Environment: - - Windows User-Mode Driver Framework (WUDF) - ---*/ - -#include "stdafx.h" -#include "Queue.h" -#include <devioctl.h> -#include <public.h> - - -#include "internal.h" -#include "queue.tmh" - -HRESULT -CQueue::QueryInterface( - _In_ REFIID riid, - _Out_ LPVOID* ppvObject - ) -/*++ - -Routine Description: - - The framework calls this function to determine which callback - interfaces we support. - -Arguments: - - riid - GUID for a given callback interface. - ppvObject - We set this pointer to our object if we support the - interface indicated by riid. - -Return Value: - - HRESULT S_OK - Interface is supported. - ---*/ -{ - if (ppvObject == NULL) - { - return E_INVALIDARG; - } - *ppvObject = NULL; - - if ( riid == _uuidof(IUnknown) ) - { - *ppvObject = static_cast<IQueueCallbackDeviceIoControl *> (this); - } - else if ( riid == _uuidof(IQueueCallbackDeviceIoControl) ) - { - *ppvObject = static_cast<IQueueCallbackDeviceIoControl *>(this); - } - else if ( riid == _uuidof(IQueueCallbackRead) ) - { - *ppvObject = static_cast<IQueueCallbackRead *>(this); - } - else if ( riid == _uuidof(IQueueCallbackWrite) ) - { - *ppvObject = static_cast<IQueueCallbackWrite *>(this); - } - else - { - return E_NOINTERFACE; - } - - this->AddRef(); - - return S_OK; -} - - - -ULONG CQueue::AddRef() -/*++ - -Routine Description: - - Increments the ref count on this object. - -Arguments: - - None. - -Return Value: - - ULONG - new ref count. - ---*/ -{ - LONG cRefs = InterlockedIncrement( &m_cRefs ); - return cRefs; -} - -_At_(this, __drv_freesMem(object)) -ULONG CQueue::Release() -/*++ - -Routine Description: - - Decrements the ref count on this object. - -Arguments: - - None. - -Return Value: - - ULONG - new ref count. - ---*/ -{ - LONG cRefs; - - cRefs = InterlockedDecrement( &m_cRefs ); - - if( 0 == cRefs ) - { - delete this; - } - - return cRefs; -} - - -void -CQueue::OnDeviceIoControl( - _In_ IWDFIoQueue* pQueue, - _In_ IWDFIoRequest* pRequest, - _In_ ULONG ControlCode, - _In_ SIZE_T /*InputBufferSizeInBytes*/, - _In_ SIZE_T /*OutputBufferSizeInBytes*/ - ) -/*++ - -Routine Description: - - The framework calls this function when somone has called - DeviceIoControl on the device. - -Arguments: - -Return Value: - None - ---*/ -{ - HRESULT hr = S_OK; - IWDFDevice *pDevice = NULL; - - Trace(TRACE_LEVEL_INFORMATION,"%!FUNC!"); - - // - // Retrieve the queue's parent device object - // - pQueue->GetDevice(&pDevice); - - WUDF_TEST_DRIVER_ASSERT(pDevice); - - switch (ControlCode) - { - case IOCTL_TOASTER_DONT_DISPLAY_IN_UI_DEVICE: - - // - // This is just an example on how to hide your device in the - // device manager. Please remove your code when you adapt this - // sample for your hardware. - // - pDevice->SetPnpState(WdfPnpStateDontDisplayInUI, WdfTrue); - pDevice->CommitPnpState(); - - break; - - default: - hr = E_FAIL; //invalid request - - Trace(TRACE_LEVEL_ERROR,"%!FUNC! Invalid IOCTL %!hresult!",hr); - } - pRequest->Complete(hr); - - return; -} - -void -CQueue::OnRead( - _In_ IWDFIoQueue* /* pQueue */, - _In_ IWDFIoRequest* pRequest, - _In_ SIZE_T SizeInBytes - ) -/*++ - -Routine Description: - - - Read dispatch routine - IQueueCallbackRead - -Arguments: - - pQueue - Framework Queue instance - pRequest - Framework Request instance - SizeInBytes - Length of bytes in the read buffer - - Copy available data into the read buffer - -Return Value: - None. - ---*/ -{ - Trace(TRACE_LEVEL_INFORMATION,"%!FUNC!"); - - // - // No need to check for zero-length reads. - // - // The framework queue is created with the flag bAllowZeroLengthRequests = FALSE. - // FALSE indicates that the framework completes zero-length I/O requests instead - // of putting them in the I/O queue. - // - - // - // TODO: Put your Read request processing here - // - - pRequest->CompleteWithInformation(S_OK, SizeInBytes); - - return; - -} - -void -CQueue::OnWrite( - _In_ IWDFIoQueue * /* pQueue */, - _In_ IWDFIoRequest * pRequest, - _In_ SIZE_T BytesToWrite - ) -/*++ - -Routine Description: - - Write dispatch routine - IQueueCallbackWrite - -Arguments: - - pQueue - Framework Queue instance - pRequest - Framework Request instance - BytesToWrite - Length of bytes in the write buffer - - Allocate and copy data to local buffer - -Return Value: - None. - ---*/ -{ - Trace(TRACE_LEVEL_INFORMATION,"%!FUNC!"); - - // - // No need to check for zero-length writes. - // - - // - // TODO: Put your Write request processing here - // - - pRequest->CompleteWithInformation(S_OK, BytesToWrite); - - return; -} - |
