From d2fcbe96256fdbb6259a128560fc1951d92bdfa2 Mon Sep 17 00:00:00 2001 From: gmh5225 <2315157@qq.com> Date: Wed, 8 Jun 2022 01:15:16 +0800 Subject: [PATCH] Upload --- .gitignore | 178 ++++++++++++++++++++++++++ CE.png | Bin 0 -> 176721 bytes CEInfo.h | 4 + LICENSE | 9 -- Main.cpp | 157 +++++++++++++++++++++++ README.md | 24 +++- ReadDirectoryChanges.cpp | 113 +++++++++++++++++ ReadDirectoryChanges.h | 142 +++++++++++++++++++++ ReadDirectoryChanges.sln | 22 ++++ ReadDirectoryChanges.vcxproj | 105 ++++++++++++++++ ReadDirectoryChanges.vcxproj.filters | 50 ++++++++ ReadDirectoryChangesPrivate.cpp | 180 +++++++++++++++++++++++++++ ReadDirectoryChangesPrivate.h | 177 ++++++++++++++++++++++++++ ThreadSafeQueue.h | 116 +++++++++++++++++ stdafx.cpp | 8 ++ stdafx.h | 32 +++++ targetver.h | 8 ++ 17 files changed, 1314 insertions(+), 11 deletions(-) create mode 100644 .gitignore create mode 100644 CE.png create mode 100644 CEInfo.h delete mode 100644 LICENSE create mode 100644 Main.cpp create mode 100644 ReadDirectoryChanges.cpp create mode 100644 ReadDirectoryChanges.h create mode 100644 ReadDirectoryChanges.sln create mode 100644 ReadDirectoryChanges.vcxproj create mode 100644 ReadDirectoryChanges.vcxproj.filters create mode 100644 ReadDirectoryChangesPrivate.cpp create mode 100644 ReadDirectoryChangesPrivate.h create mode 100644 ThreadSafeQueue.h create mode 100644 stdafx.cpp create mode 100644 stdafx.h create mode 100644 targetver.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a9d3d0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,178 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Azure Emulator +efc/ +rfc/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs diff --git a/CE.png b/CE.png new file mode 100644 index 0000000000000000000000000000000000000000..2b19fbfdbc6c7c8c02153607186be9190f47f987 GIT binary patch literal 176721 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%0DL-9FO7YU1o`?Ho* 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 z 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
N;$6`M-VtqJ|!3Kd|~ZL{8s?B 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 literal 0 HcmV?d00001 diff --git a/CEInfo.h b/CEInfo.h new file mode 100644 index 0000000..e0080e2 --- /dev/null +++ b/CEInfo.h @@ -0,0 +1,4 @@ +#pragma once + +#define CE_DETECTION_1 L"ADDRESSES.FIRST" +#define CE_DETECTION_2 L"MEMORY.FIRST" diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 2071b23..0000000 --- a/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Main.cpp b/Main.cpp new file mode 100644 index 0000000..3ee645f --- /dev/null +++ b/Main.cpp @@ -0,0 +1,157 @@ +// +// The MIT License +// +// Copyright (c) 2010 James E Beveridge +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +// This sample code is for my blog entry titled, "Understanding ReadDirectoryChangesW" +// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +// See ReadMe.txt for overview information. + + +#include "stdafx.h" +#include "ReadDirectoryChanges.h" +#include "CEInfo.h" + +LPCWSTR ExplainAction( DWORD dwAction ); +bool TryGetKeyboardInput( HANDLE hStdIn, bool &bTerminate, char* buf ); + + +// +// When the application starts, it immediately starts monitoring your home +// directory, including children, as well as C:\, not including children. +// The application exits when you hit Esc. +// You can add a directory to the monitoring list by typing the directory +// name and hitting Enter. Notifications will pause while you type. +// + +int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) +{ + const DWORD dwNotificationFlags = + FILE_NOTIFY_CHANGE_LAST_WRITE + | FILE_NOTIFY_CHANGE_CREATION + | FILE_NOTIFY_CHANGE_FILE_NAME; + + // Create the monitor and add two directories. + CReadDirectoryChanges changes; + changes.AddDirectory(_tgetenv(_T("USERPROFILE")), true, dwNotificationFlags); + changes.AddDirectory(_T("C:\\"), false, dwNotificationFlags); + + HANDLE hStdIn = ::GetStdHandle(STD_INPUT_HANDLE); + const HANDLE handles[] = { hStdIn, changes.GetWaitHandle() }; + + char buf[MAX_PATH]; + bool bTerminate = false; + + while (!bTerminate) + { + DWORD rc = ::WaitForMultipleObjectsEx(_countof(handles), handles, false, INFINITE, true); + switch (rc) + { + case WAIT_OBJECT_0 + 0: + // hStdIn was signaled. This can happen due to mouse input, focus change, + // Shift keys, and more. Delegate to TryGetKeyboardInput(). + // TryGetKeyboardInput sets bTerminate to true if the user hits Esc. + if (TryGetKeyboardInput(hStdIn, bTerminate, buf)) + { + std::string strbuf(buf); + std::wstring wstrbuf(strbuf.begin(), strbuf.end()); + changes.AddDirectory(wstrbuf.c_str(), false, dwNotificationFlags); + } + + break; + case WAIT_OBJECT_0 + 1: + // We've received a notification in the queue. + { + DWORD dwAction; + std::wstring wstrFilename; + if (changes.CheckOverflow()) + wprintf(L"Queue overflowed.\n"); + else + { + changes.Pop(dwAction, wstrFilename); + if (wstrFilename.find(CE_DETECTION_1) != std::wstring::npos || + wstrFilename.find(CE_DETECTION_2) != std::wstring::npos + ) + { + wprintf(L"Find CE:%s %s\n", ExplainAction(dwAction), wstrFilename.c_str()); + } + + } + } + break; + case WAIT_IO_COMPLETION: + // Nothing to do. + break; + } + } + + // Just for sample purposes. The destructor will + // call Terminate() automatically. + changes.Terminate(); + + return EXIT_SUCCESS; +} + +LPCWSTR ExplainAction( DWORD dwAction ) +{ + switch (dwAction) + { + case FILE_ACTION_ADDED : + return L"Added"; + case FILE_ACTION_REMOVED : + return L"Deleted"; + case FILE_ACTION_MODIFIED : + return L"Modified"; + case FILE_ACTION_RENAMED_OLD_NAME : + return L"Renamed From"; + case FILE_ACTION_RENAMED_NEW_NAME : + return L"Renamed To"; + default: + return L"BAD DATA"; + } +} + +bool TryGetKeyboardInput( HANDLE hStdIn, bool &bTerminate, char* buf ) +{ + DWORD dwNumberOfEventsRead=0; + INPUT_RECORD rec = {0}; + + if (!::PeekConsoleInput(hStdIn, &rec, 1, &dwNumberOfEventsRead)) + return false; + + if (rec.EventType == KEY_EVENT) + { + if (rec.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE) + bTerminate = true; + else if (rec.Event.KeyEvent.wVirtualKeyCode > VK_HELP) + { + if (!gets_s(buf, MAX_PATH)) // End of file, usually Ctrl-Z + bTerminate = true; + else + return true; + } + } + + ::FlushConsoleInputBuffer(hStdIn); + + return false; +} diff --git a/README.md b/README.md index a4ef83e..ed11c71 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,23 @@ -# Detection-CheatEngine +## Detection-CheatEngine -Using ReadDirectoryChangesW to detect CheatEngine \ No newline at end of file +![image](CE.png) + +## Principle +[Understanding ReadDirectoryChangesW]( +http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html) + +## Expansion +You can add your detection vector easily in [CEInfo.h](https://github.com/gmh5225/Detection-CheatEngine/blob/master/CEInfo.h) +```C++ +#pragma once + +#define CE_DETECTION_1 L"ADDRESSES.FIRST" +#define CE_DETECTION_2 L"MEMORY.FIRST" +``` + +## Compile +- Visual Studio 2022 +- llvm-msvc [[link]](https://github.com/NewWorldComingSoon/llvm-msvc-build) + +## Some discussions on UnknownCheats +https://www.unknowncheats.me/forum/general-programming-and-reversing/502279-using-readdirectorychangesw-detect-cheatengine.html diff --git a/ReadDirectoryChanges.cpp b/ReadDirectoryChanges.cpp new file mode 100644 index 0000000..ed5c6c4 --- /dev/null +++ b/ReadDirectoryChanges.cpp @@ -0,0 +1,113 @@ +// +// The MIT License +// +// Copyright (c) 2010 James E Beveridge +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +// This sample code is for my blog entry titled, "Understanding ReadDirectoryChangesW" +// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +// See ReadMe.txt for overview information. + +#include "stdafx.h" +#include "ReadDirectoryChanges.h" +#include "ReadDirectoryChangesPrivate.h" + +using namespace ReadDirectoryChangesPrivate; + +/////////////////////////////////////////////////////////////////////////// +// CReadDirectoryChanges + +CReadDirectoryChanges::CReadDirectoryChanges(int nMaxCount) + : m_Notifications(nMaxCount) +{ + m_hThread = NULL; + m_dwThreadId= 0; + m_pServer = new CReadChangesServer(this); +} + +CReadDirectoryChanges::~CReadDirectoryChanges() +{ + Terminate(); + delete m_pServer; +} + +void CReadDirectoryChanges::Init() +{ + // + // Kick off the worker thread, which will be + // managed by CReadChangesServer. + // + m_hThread = (HANDLE)_beginthreadex(NULL, + 0, + CReadChangesServer::ThreadStartProc, + m_pServer, + 0, + &m_dwThreadId + ); +} + +void CReadDirectoryChanges::Terminate() +{ + if (m_hThread) + { + ::QueueUserAPC(CReadChangesServer::TerminateProc, m_hThread, (ULONG_PTR)m_pServer); + ::WaitForSingleObjectEx(m_hThread, 10000, true); + ::CloseHandle(m_hThread); + + m_hThread = NULL; + m_dwThreadId = 0; + } +} + +void CReadDirectoryChanges::AddDirectory( LPCTSTR szDirectory, BOOL bWatchSubtree, DWORD dwNotifyFilter, DWORD dwBufferSize ) +{ + if (!m_hThread) + Init(); + + CReadChangesRequest* pRequest = new CReadChangesRequest(m_pServer, szDirectory, bWatchSubtree, dwNotifyFilter, dwBufferSize); + QueueUserAPC(CReadChangesServer::AddDirectoryProc, m_hThread, (ULONG_PTR)pRequest); +} + +void CReadDirectoryChanges::Push(DWORD dwAction, std::wstring& wstrFilename) +{ + auto item = TDirectoryChangeNotification(dwAction, wstrFilename); + m_Notifications.push(item); +} + +bool CReadDirectoryChanges::Pop(DWORD& dwAction, std::wstring& wstrFilename) +{ + TDirectoryChangeNotification pair; + if (!m_Notifications.pop(pair)) + return false; + + dwAction = pair.first; + wstrFilename = pair.second; + + return true; +} + +bool CReadDirectoryChanges::CheckOverflow() +{ + bool b = m_Notifications.overflow(); + if (b) + m_Notifications.clear(); + return b; +} diff --git a/ReadDirectoryChanges.h b/ReadDirectoryChanges.h new file mode 100644 index 0000000..f4a4b61 --- /dev/null +++ b/ReadDirectoryChanges.h @@ -0,0 +1,142 @@ +// +// The MIT License +// +// Copyright (c) 2010 James E Beveridge +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +// This sample code is for my blog entry titled, "Understanding ReadDirectoryChangesW" +// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +// See ReadMe.txt for overview information. + + +#pragma once + +#include "ThreadSafeQueue.h" + +typedef pair TDirectoryChangeNotification; + +namespace ReadDirectoryChangesPrivate +{ + class CReadChangesServer; +} + +/////////////////////////////////////////////////////////////////////////// + + +/// +/// Track changes to filesystem directories and report them +/// to the caller via a thread-safe queue. +/// +/// +/// +/// This sample code is based on my blog entry titled, "Understanding ReadDirectoryChangesW" +/// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +/// +/// All functions in CReadDirectoryChangesServer run in +/// the context of the calling thread. +/// +/// +/// CReadDirectoryChanges changes; +/// changes.AddDirectory(_T("C:\\"), false, dwNotificationFlags); +/// +/// const HANDLE handles[] = { hStopEvent, changes.GetWaitHandle() }; +/// +/// while (!bTerminate) +/// { +/// ::MsgWaitForMultipleObjectsEx( +/// _countof(handles), +/// handles, +/// INFINITE, +/// QS_ALLINPUT, +/// MWMO_INPUTAVAILABLE | MWMO_ALERTABLE); +/// switch (rc) +/// { +/// case WAIT_OBJECT_0 + 0: +/// bTerminate = true; +/// break; +/// case WAIT_OBJECT_0 + 1: +/// // We've received a notification in the queue. +/// { +/// DWORD dwAction; +/// CStringW wstrFilename; +/// changes.Pop(dwAction, wstrFilename); +/// wprintf(L"%s %s\n", ExplainAction(dwAction), wstrFilename); +/// } +/// break; +/// case WAIT_OBJECT_0 + _countof(handles): +/// // Get and dispatch message +/// break; +/// case WAIT_IO_COMPLETION: +/// // APC complete.No action needed. +/// break; +/// } +/// } +/// +/// +class CReadDirectoryChanges +{ +public: + CReadDirectoryChanges(int nMaxChanges=1000); + ~CReadDirectoryChanges(); + + void Init(); + void Terminate(); + + /// + /// Add a new directory to be monitored. + /// + /// Directory to monitor. + /// True to also monitor subdirectories. + /// The types of file system events to monitor, such as FILE_NOTIFY_CHANGE_ATTRIBUTES. + /// The size of the buffer used for overlapped I/O. + /// + /// + /// This function will make an APC call to the worker thread to issue a new + /// ReadDirectoryChangesW call for the given directory with the given flags. + /// + /// + void AddDirectory( LPCTSTR wszDirectory, BOOL bWatchSubtree, DWORD dwNotifyFilter, DWORD dwBufferSize=16384 ); + + /// + /// Return a handle for the Win32 Wait... functions that will be + /// signaled when there is a queue entry. + /// + HANDLE GetWaitHandle() { return m_Notifications.GetWaitHandle(); } + + bool Pop(DWORD& dwAction, std::wstring& wstrFilename); + + // "Push" is for usage by ReadChangesRequest. Not intended for external usage. + void Push(DWORD dwAction, std::wstring& wstrFilename); + + // Check if the queue overflowed. If so, clear it and return true. + bool CheckOverflow(); + + unsigned int GetThreadId() { return m_dwThreadId; } + +protected: + ReadDirectoryChangesPrivate::CReadChangesServer* m_pServer; + + HANDLE m_hThread; + + unsigned int m_dwThreadId; + + CThreadSafeQueue m_Notifications; +}; diff --git a/ReadDirectoryChanges.sln b/ReadDirectoryChanges.sln new file mode 100644 index 0000000..7c6a5e9 --- /dev/null +++ b/ReadDirectoryChanges.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32519.379 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReadDirectoryChanges", "ReadDirectoryChanges.vcxproj", "{72A7916C-36BC-49D6-A9A9-B9FF8347BCE6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {72A7916C-36BC-49D6-A9A9-B9FF8347BCE6}.Debug|Win32.ActiveCfg = Debug|Win32 + {72A7916C-36BC-49D6-A9A9-B9FF8347BCE6}.Debug|Win32.Build.0 = Debug|Win32 + {72A7916C-36BC-49D6-A9A9-B9FF8347BCE6}.Release|Win32.ActiveCfg = Release|Win32 + {72A7916C-36BC-49D6-A9A9-B9FF8347BCE6}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ReadDirectoryChanges.vcxproj b/ReadDirectoryChanges.vcxproj new file mode 100644 index 0000000..658ef3f --- /dev/null +++ b/ReadDirectoryChanges.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {72A7916C-36BC-49D6-A9A9-B9FF8347BCE6} + Win32Proj + ReadDirectoryChanges + 10.0 + + + + Application + true + Unicode + Dynamic + Static + LLVM-MSVC_v143 + + + Application + false + true + Unicode + Dynamic + Static + LLVM-MSVC_v143 + + + + + + + + + + + + + true + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + Create + Create + + + + + + \ No newline at end of file diff --git a/ReadDirectoryChanges.vcxproj.filters b/ReadDirectoryChanges.vcxproj.filters new file mode 100644 index 0000000..ae25ea4 --- /dev/null +++ b/ReadDirectoryChanges.vcxproj.filters @@ -0,0 +1,50 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/ReadDirectoryChangesPrivate.cpp b/ReadDirectoryChangesPrivate.cpp new file mode 100644 index 0000000..08e5595 --- /dev/null +++ b/ReadDirectoryChangesPrivate.cpp @@ -0,0 +1,180 @@ +// +// The MIT License +// +// Copyright (c) 2010 James E Beveridge +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +// This sample code is for my blog entry titled, "Understanding ReadDirectoryChangesW" +// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +// See ReadMe.txt for overview information. + + +#include "stdafx.h" +#include "ReadDirectoryChanges.h" +#include "ReadDirectoryChangesPrivate.h" + + +// The namespace is a convenience to emphasize that these are internals +// interfaces. The namespace can be safely removed if you need to. +namespace ReadDirectoryChangesPrivate +{ + +/////////////////////////////////////////////////////////////////////////// +// CReadChangesRequest + +CReadChangesRequest::CReadChangesRequest(CReadChangesServer* pServer, LPCTSTR sz, BOOL b, DWORD dw, DWORD size) +{ + m_pServer = pServer; + m_dwFilterFlags = dw; + m_bIncludeChildren = b; + m_wstrDirectory = sz; + m_hDirectory = 0; + + ::ZeroMemory(&m_Overlapped, sizeof(OVERLAPPED)); + + // The hEvent member is not used when there is a completion + // function, so it's ok to use it to point to the object. + m_Overlapped.hEvent = this; + + m_Buffer.resize(size); + m_BackupBuffer.resize(size); +} + + +CReadChangesRequest::~CReadChangesRequest() +{ + // RequestTermination() must have been called successfully. + _ASSERTE(m_hDirectory == NULL); +} + + +bool CReadChangesRequest::OpenDirectory() +{ + // Allow this routine to be called redundantly. + if (m_hDirectory) + return true; + + m_hDirectory = ::CreateFileW( + m_wstrDirectory.c_str(), // pointer to the file name + FILE_LIST_DIRECTORY, // access (read/write) mode + FILE_SHARE_READ // share mode + | FILE_SHARE_WRITE + | FILE_SHARE_DELETE, + NULL, // security descriptor + OPEN_EXISTING, // how to create + FILE_FLAG_BACKUP_SEMANTICS // file attributes + | FILE_FLAG_OVERLAPPED, + NULL); // file with attributes to copy + + if (m_hDirectory == INVALID_HANDLE_VALUE) + { + return false; + } + + return true; +} + +void CReadChangesRequest::BeginRead() +{ + DWORD dwBytes=0; + + // This call needs to be reissued after every APC. + BOOL success = ::ReadDirectoryChangesW( + m_hDirectory, // handle to directory + &m_Buffer[0], // read results buffer + m_Buffer.size(), // length of buffer + m_bIncludeChildren, // monitoring option + m_dwFilterFlags, // filter conditions + &dwBytes, // bytes returned + &m_Overlapped, // overlapped buffer + &NotificationCompletion); // completion routine +} + +//static +VOID CALLBACK CReadChangesRequest::NotificationCompletion( + DWORD dwErrorCode, // completion code + DWORD dwNumberOfBytesTransfered, // number of bytes transferred + LPOVERLAPPED lpOverlapped) // I/O information buffer +{ + CReadChangesRequest* pBlock = (CReadChangesRequest*)lpOverlapped->hEvent; + + if (dwErrorCode == ERROR_OPERATION_ABORTED) + { + ::InterlockedDecrement(&pBlock->m_pServer->m_nOutstandingRequests); + delete pBlock; + return; + } + + // Can't use sizeof(FILE_NOTIFY_INFORMATION) because + // the structure is padded to 16 bytes. + _ASSERTE(dwNumberOfBytesTransfered >= offsetof(FILE_NOTIFY_INFORMATION, FileName) + sizeof(WCHAR)); + + // This might mean overflow? Not sure. + if(!dwNumberOfBytesTransfered) + return; + + pBlock->BackupBuffer(dwNumberOfBytesTransfered); + + // Get the new read issued as fast as possible. The documentation + // says that the original OVERLAPPED structure will not be used + // again once the completion routine is called. + pBlock->BeginRead(); + + pBlock->ProcessNotification(); +} + +void CReadChangesRequest::ProcessNotification() +{ + BYTE* pBase = m_BackupBuffer.data(); + + for (;;) + { + FILE_NOTIFY_INFORMATION& fni = (FILE_NOTIFY_INFORMATION&)*pBase; + + std::wstring wstrFilename(fni.FileName, fni.FileNameLength/sizeof(wchar_t)); + // Handle a trailing backslash, such as for a root directory. + if (m_wstrDirectory.find_last_of(L"\\") != std::wstring::npos) + wstrFilename = m_wstrDirectory + L"\\" + wstrFilename; + else + wstrFilename = m_wstrDirectory + wstrFilename; + + // If it could be a short filename, expand it. + LPCWSTR wszFilename = PathFindFileNameW(wstrFilename.c_str()); + int len = lstrlenW(wszFilename); + // The maximum length of an 8.3 filename is twelve, including the dot. + if (len <= 12 && wcschr(wszFilename, L'~')) + { + // Convert to the long filename form. Unfortunately, this + // does not work for deletions, so it's an imperfect fix. + wchar_t wbuf[MAX_PATH]; + if (::GetLongPathNameW(wstrFilename.c_str(), wbuf, _countof(wbuf)) > 0) + wstrFilename = wbuf; + } + + m_pServer->m_pBase->Push(fni.Action, wstrFilename); + + if (!fni.NextEntryOffset) + break; + pBase += fni.NextEntryOffset; + }; +} + +} diff --git a/ReadDirectoryChangesPrivate.h b/ReadDirectoryChangesPrivate.h new file mode 100644 index 0000000..b56d23a --- /dev/null +++ b/ReadDirectoryChangesPrivate.h @@ -0,0 +1,177 @@ +// +// The MIT License +// +// Copyright (c) 2010 James E Beveridge +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +// This sample code is for my blog entry titled, "Understanding ReadDirectoryChangesW" +// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +// See ReadMe.txt for overview information. + +class CReadDirectoryChanges; + +namespace ReadDirectoryChangesPrivate +{ + +class CReadChangesServer; + +/////////////////////////////////////////////////////////////////////////// + +// All functions in CReadChangesRequest run in the context of the worker thread. +// One instance of this object is created for each call to AddDirectory(). +class CReadChangesRequest +{ +public: + CReadChangesRequest(CReadChangesServer* pServer, LPCTSTR sz, BOOL b, DWORD dw, DWORD size); + + ~CReadChangesRequest(); + + bool OpenDirectory(); + + void BeginRead(); + + // The dwSize is the actual number of bytes sent to the APC. + void BackupBuffer(DWORD dwSize) + { + // We could just swap back and forth between the two + // buffers, but this code is easier to understand and debug. + memcpy(&m_BackupBuffer[0], &m_Buffer[0], dwSize); + } + + void ProcessNotification(); + + void RequestTermination() + { + ::CancelIo(m_hDirectory); + ::CloseHandle(m_hDirectory); + m_hDirectory = nullptr; + } + + CReadChangesServer* m_pServer; + +protected: + + static VOID CALLBACK NotificationCompletion( + DWORD dwErrorCode, // completion code + DWORD dwNumberOfBytesTransfered, // number of bytes transferred + LPOVERLAPPED lpOverlapped); // I/O information buffer + + // Parameters from the caller for ReadDirectoryChangesW(). + DWORD m_dwFilterFlags; + BOOL m_bIncludeChildren; + std::wstring m_wstrDirectory; + + // Result of calling CreateFile(). + HANDLE m_hDirectory; + + // Required parameter for ReadDirectoryChangesW(). + OVERLAPPED m_Overlapped; + + // Data buffer for the request. + // Since the memory is allocated by malloc, it will always + // be aligned as required by ReadDirectoryChangesW(). + vector m_Buffer; + + // Double buffer strategy so that we can issue a new read + // request before we process the current buffer. + vector m_BackupBuffer; +}; + +/////////////////////////////////////////////////////////////////////////// + +// All functions in CReadChangesServer run in the context of the worker thread. +// One instance of this object is allocated for each instance of CReadDirectoryChanges. +// This class is responsible for thread startup, orderly thread shutdown, and shimming +// the various C++ member functions with C-style Win32 functions. +class CReadChangesServer +{ +public: + CReadChangesServer(CReadDirectoryChanges* pParent) + { + m_bTerminate=false; m_nOutstandingRequests=0;m_pBase=pParent; + } + + static unsigned int WINAPI ThreadStartProc(LPVOID arg) + { + CReadChangesServer* pServer = (CReadChangesServer*)arg; + pServer->Run(); + return 0; + } + + // Called by QueueUserAPC to start orderly shutdown. + static void CALLBACK TerminateProc(__in ULONG_PTR arg) + { + CReadChangesServer* pServer = (CReadChangesServer*)arg; + pServer->RequestTermination(); + } + + // Called by QueueUserAPC to add another directory. + static void CALLBACK AddDirectoryProc(__in ULONG_PTR arg) + { + CReadChangesRequest* pRequest = (CReadChangesRequest*)arg; + pRequest->m_pServer->AddDirectory(pRequest); + } + + CReadDirectoryChanges* m_pBase; + + volatile DWORD m_nOutstandingRequests; + +protected: + + void Run() + { + while (m_nOutstandingRequests || !m_bTerminate) + { + DWORD rc = ::SleepEx(INFINITE, true); + } + } + + void AddDirectory( CReadChangesRequest* pBlock ) + { + if (pBlock->OpenDirectory()) + { + ::InterlockedIncrement(&pBlock->m_pServer->m_nOutstandingRequests); + m_pBlocks.push_back(pBlock); + pBlock->BeginRead(); + } + else + delete pBlock; + } + + void RequestTermination() + { + m_bTerminate = true; + + for (DWORD i=0; iRequestTermination(); + } + + m_pBlocks.clear(); + } + + vector m_pBlocks; + + bool m_bTerminate; +}; + +} diff --git a/ThreadSafeQueue.h b/ThreadSafeQueue.h new file mode 100644 index 0000000..fa4a607 --- /dev/null +++ b/ThreadSafeQueue.h @@ -0,0 +1,116 @@ +// +// The MIT License +// +// Copyright (c) 2010 James E Beveridge +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +// This sample code is for my blog entry titled, "Understanding ReadDirectoryChangesW" +// http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html +// See ReadMe.txt for overview information. + +#include + +template +class CThreadSafeQueue : protected std::list +{ +public: + CThreadSafeQueue(int nMaxCount) + { + m_bOverflow = false; + + m_hSemaphore = ::CreateSemaphore( + NULL, // no security attributes + 0, // initial count + nMaxCount, // max count + NULL); // anonymous + } + + ~CThreadSafeQueue() + { + ::CloseHandle(m_hSemaphore); + m_hSemaphore = NULL; + } + + void push(C& c) + { + CComCritSecLock lock( m_Crit, true ); + push_back( c ); + lock.Unlock(); + + if (!::ReleaseSemaphore(m_hSemaphore, 1, NULL)) + { + // If the semaphore is full, then take back the entry. + lock.Lock(); + pop_back(); + if (GetLastError() == ERROR_TOO_MANY_POSTS) + { + m_bOverflow = true; + } + } + } + + bool pop(C& c) + { + CComCritSecLock lock( m_Crit, true ); + + // If the user calls pop() more than once after the + // semaphore is signaled, then the semaphore count will + // get out of sync. We fix that when the queue empties. + if (empty()) + { + while (::WaitForSingleObject(m_hSemaphore, 0) != WAIT_TIMEOUT) + 1; + return false; + } + + c = front(); + pop_front(); + + return true; + } + + // If overflow, use this to clear the queue. + void clear() + { + CComCritSecLock lock( m_Crit, true ); + + for (DWORD i=0; i + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers +#endif + +#include + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit + +#include +#include + +#include +#include +#include +#include +#include +#include + +using namespace std; diff --git a/targetver.h b/targetver.h new file mode 100644 index 0000000..87c0086 --- /dev/null +++ b/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include