diff options
| author | David Spruill <[email protected]> | 2026-01-08 17:51:47 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-08 17:51:47 -0500 |
| commit | c5fc3ca1fd0e00a7e085ef48abfeff9c0c39817e (patch) | |
| tree | 0e650a0fee8027816bbea82ca1fd9b8e3e6ee24a /wpd/WpdBasicHardwareDriver/stdafx.h | |
| parent | f88e4fbbd4d2671e5cd77e4f60be7a235326797e (diff) | |
| parent | ed3dbe56378117a15105099870f2397671ad99ab (diff) | |
Merge branch 'develop' into user/daspr/kmodsamplefix
Diffstat (limited to 'wpd/WpdBasicHardwareDriver/stdafx.h')
| -rw-r--r-- | wpd/WpdBasicHardwareDriver/stdafx.h | 320 |
1 files changed, 0 insertions, 320 deletions
diff --git a/wpd/WpdBasicHardwareDriver/stdafx.h b/wpd/WpdBasicHardwareDriver/stdafx.h deleted file mode 100644 index 56150a64..00000000 --- a/wpd/WpdBasicHardwareDriver/stdafx.h +++ /dev/null @@ -1,320 +0,0 @@ -#pragma once - -#include "resource.h" -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif - -#define STRSAFE_NO_DEPRECATE - -#include <stdio.h> -#include <tchar.h> - -#include <atlbase.h> -#include <atlcom.h> -#include <atlcoll.h> -#include <atlstr.h> -#include <strsafe.h> - -// This driver is entirely user-mode -_Analysis_mode_(_Analysis_code_type_user_code_); - -// -// Driver specific tracing #defines - -// -// TODO: Change these values to be appropriate for your driver. -// -#define MYDRIVER_TRACING_ID L"Microsoft\\WPD\\BasicHardwareDriver" - -// -// TODO: Choose a different trace control GUID -// - -#define WPP_CONTROL_GUIDS \ - WPP_DEFINE_CONTROL_GUID(BasicHardwareDriverCtlGuid,(80068de5,197d,4db6,b77c,29ee3cca4537), \ - WPP_DEFINE_BIT(TRACE_FLAG_ALL) \ - WPP_DEFINE_BIT(TRACE_FLAG_DEVICE) \ - WPP_DEFINE_BIT(TRACE_FLAG_DRIVER) \ - WPP_DEFINE_BIT(TRACE_FLAG_QUEUE) \ - ) - -#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) \ - WPP_LEVEL_LOGGER(flags) - -#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \ - (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl) - -// -// This comment block is scanned by the trace preprocessor to define our -// TraceEvents function. -// -// begin_wpp config -// FUNC Trace{FLAG=TRACE_FLAG_ALL}(LEVEL, MSG, ...); -// FUNC TraceEvents(LEVEL, FLAGS, MSG, ...); -// end_wpp - -// -// This comment block is scanned by the trace preprocessor to define our -// CHECK_HR function. -// -// -// begin_wpp config -// USEPREFIX (CHECK_HR,"%!STDPREFIX!"); -// FUNC CHECK_HR{FLAG=TRACE_FLAG_ALL}(hrCheck, MSG, ...); -// USESUFFIX (CHECK_HR, " hr= %!HRESULT!", hrCheck); -// end_wpp - -// -// PRE macro: The name of the macro includes the condition arguments FLAGS and EXP -// define in FUNC above -// -#define WPP_FLAG_hrCheck_PRE(FLAGS, hrCheck) {if(hrCheck != S_OK) { - -// -// POST macro -// The name of the macro includes the condition arguments FLAGS and EXP -// define in FUNC above -#define WPP_FLAG_hrCheck_POST(FLAGS, hrCheck) ; } } - -// -// The two macros below are for checking if the event should be logged and for -// choosing the logger handle to use when calling the ETW trace API -// -#define WPP_FLAG_hrCheck_ENABLED(FLAGS, hrCheck) WPP_FLAG_ENABLED(FLAGS) -#define WPP_FLAG_hrCheck_LOGGER(FLAGS, hrCheck) WPP_FLAG_LOGGER(FLAGS) - - -#include <PortableDevice.h> -#include <PortableDeviceTypes.h> -#include <PortableDeviceClassExtension.h> - -#include <initguid.h> // Required to access the DEFINE_GUID macro -#include <propkeydef.h> // Required to access the DEFINE_PROPERTYKEY macro - -// {CDD18979-A7B0-4D5E-9EB2-0A826805CBBD} -DEFINE_PROPERTYKEY(PRIVATE_SAMPLE_DRIVER_WUDF_DEVICE_OBJECT, 0xCDD18979, 0xA7B0, 0x4D5E, 0x9E, 0xB2, 0x0A, 0x82, 0x68, 0x05, 0xCB, 0xBD, 2); -// {9BD949E5-59CF-41AE-90A9-BE1D044F578F} -DEFINE_PROPERTYKEY(PRIVATE_SAMPLE_DRIVER_WPD_SERIALIZER_OBJECT, 0x9BD949E5, 0x59CF, 0x41AE, 0x90, 0xA9, 0xBE, 0x1D, 0x04, 0x4F, 0x57, 0x8F, 2); -// {4DF6C8C7-2CE5-457C-9F53-EFCECAA95C04} -DEFINE_PROPERTYKEY(PRIVATE_SAMPLE_DRIVER_CLIENT_CONTEXT_MAP, 0x4DF6C8C7, 0x2CE5, 0x457C, 0x9F, 0x53, 0xEF, 0xCE, 0xCA, 0xA9, 0x5C, 0x04, 2); - -/**************************************************************************** -* This section defines the Functional Category associated with the sensor object -****************************************************************************/ - -// -// FUNCTIONAL_CATEGORY_SENSOR_SAMPLE -// Indicates this object encapsulates sensor functionality on the device -DEFINE_GUID (FUNCTIONAL_CATEGORY_SENSOR_SAMPLE, 0x09b93609, 0xd5c1,0x497b,0xb2, 0x52, 0xb4, 0x92, 0xcb, 0x5e, 0xfe, 0x52); - - -/**************************************************************************** -* This section defines all Commands, Parameters and Options associated with: -* SENSOR_PROPERTIES_V1 -* -* This category is for properties common to all sensor objects. -****************************************************************************/ -DEFINE_GUID (SENSOR_PROPERTIES_V1, 0xa7ef4367, 0x6550, 0x4055, 0xb6, 0x6f, 0xbe, 0x6f, 0xda, 0xcf, 0x4e, 0x9f); - -// -// SENSOR_READING -// [ VT_UI4 ] Indicates the sensor reading in degrees Kelvin. -DEFINE_PROPERTYKEY(SENSOR_READING, 0xa7ef4367, 0x6550, 0x4055, 0xb6, 0x6f, 0xbe, 0x6f, 0xda, 0xcf, 0x4e, 0x9f, 2); -// -// SENSOR_UPDATE_INTERVAL -// [ VT_UI4 ] Indicates the sensor update interval in milliseconds. -DEFINE_PROPERTYKEY(SENSOR_UPDATE_INTERVAL, 0xa7ef4367, 0x6550, 0x4055, 0xb6, 0x6f, 0xbe, 0x6f, 0xda, 0xcf, 0x4e, 0x9f, 3); - -/**************************************************************************** -* This section defines all Events associated with the sensor object -****************************************************************************/ -// -// EVENT_SENSOR_READING_UPDATED -// This event is sent after a new sensor reading is available on the device. -DEFINE_GUID (EVENT_SENSOR_READING_UPDATED, 0xada23b0b, 0xce13, 0x4e11, 0x9d, 0x2f, 0x15, 0xfe, 0x10, 0xd6, 0x63, 0x37); - - -// -// Macro Definitions -// - -#ifndef SAFE_RELEASE - #define SAFE_RELEASE(p) if( NULL != p ) { ( p )->Release(); p = NULL; } -#endif - -class ContextMap : public IUnknown -{ -public: - ContextMap() : - m_cRef(1) - { - - } - - ~ContextMap() - { - CComCritSecLock<CComAutoCriticalSection> Lock(m_CriticalSection); - - IUnknown* pUnk = NULL; - POSITION elementPosition = NULL; - - elementPosition = m_Map.GetStartPosition(); - while(elementPosition != NULL) - { - pUnk = m_Map.GetNextValue(elementPosition); - if(pUnk != NULL) - { - pUnk->Release(); - } - } - } - -public: // IUnknown - ULONG __stdcall AddRef() - { - InterlockedIncrement((long*) &m_cRef); - return m_cRef; - } - - _At_(this, __drv_freesMem(Mem)) - ULONG __stdcall Release() - { - ULONG ulRefCount = m_cRef - 1; - - if (InterlockedDecrement((long*) &m_cRef) == 0) - { - delete this; - return 0; - } - return ulRefCount; - } - - HRESULT __stdcall QueryInterface( - REFIID riid, - void** ppv) - { - HRESULT hr = S_OK; - - if(riid == IID_IUnknown) - { - *ppv = static_cast<IUnknown*>(this); - AddRef(); - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - return hr; - } - - -public: // Context accessor methods - - // If successful, this method AddRef's the context and returns - // a context key - HRESULT Add( - _In_ IUnknown* pContext, - _Out_ CAtlStringW& key) - { - CComCritSecLock<CComAutoCriticalSection> Lock(m_CriticalSection); - HRESULT hr = S_OK; - GUID guidContext = GUID_NULL; - CComBSTR bstrContext; - key = L""; - - // Create a unique context key - hr = CoCreateGuid(&guidContext); - if (hr == S_OK) - { - bstrContext = guidContext; - if(bstrContext.Length() > 0) - { - key = bstrContext; - } - else - { - hr = E_OUTOFMEMORY; - } - } - - if (hr == S_OK) - { - // Insert this into the map - POSITION elementPosition = m_Map.SetAt(key, pContext); - if(elementPosition != NULL) - { - // AddRef since we are holding onto it - pContext->AddRef(); - } - else - { - hr = E_OUTOFMEMORY; - } - } - return hr; - } - - void Remove( - _In_ const CAtlStringW& key) - { - CComCritSecLock<CComAutoCriticalSection> Lock(m_CriticalSection); - // Get the element - IUnknown* pContext = NULL; - - if (m_Map.Lookup(key, pContext) == true) - { - // Remove the entry for it - m_Map.RemoveKey(key); - - // Release it - pContext->Release(); - } - } - - // Returns the context pointer. If not found, return value is NULL. - // If non-NULL, caller is responsible for Releasing when it is done, - // since this method will AddRef the context. - IUnknown* GetContext( - _In_ const CAtlStringW& key) - { - CComCritSecLock<CComAutoCriticalSection> Lock(m_CriticalSection); - // Get the element - IUnknown* pContext = NULL; - - if (m_Map.Lookup(key, pContext) == true) - { - // AddRef - pContext->AddRef(); - } - return pContext; - } - -private: - CComAutoCriticalSection m_CriticalSection; - CAtlMap<CAtlStringW, IUnknown*> m_Map; - DWORD m_cRef; -}; - -HRESULT UpdateDeviceFriendlyName( - _In_ IPortableDeviceClassExtension* pPortableDeviceClassExtension, - _In_ LPCWSTR wszDeviceFriendlyName); - - -// Forward declaration of WpdBaseDriver as it is accessed by other classes -class WpdBaseDriver; - -#include "WpdBasicHardwareDriver.h" -#include "RS232Connection.h" -#include "RS232Target.h" -#include "WpdObjectEnum.h" -#include "WpdObjectProperties.h" -#include "WpdCapabilities.h" -#include "WpdBaseDriver.h" -#include "Device.h" -#include "Driver.h" -#include "Queue.h" - -extern HINSTANCE g_hInstance; - |
