NAME N MURUGESAN
SOURCE CODE ANALYSIS ON Thu 14-Sep-2023 IST
REASON FOR THIS IDA DOCUMENT ON Thu 14-Sep-2023 IST I TRIED USING %USERPROFILE%\Favorites\Links FOLDER AFTER WINDOWS UPDATE USING ep_setup.exe
AFTER INSTALLING EP_SETUP.EXE AT WINDOWS 11 EXPLORER.EXE DISPLAYING FOLLOWING KIND OF ERROR
%USERPROFILE%\Favorites\Links APPEAARS AFTER RESTART OR AFTER LOGOUT AND RE-LOGIN
IT DISAPPEARS AGAIN AND REPORTING SAME ERROR WHICH IS MAKING %USERPROFILE%\Favorites\Links TO DISAPPEAR AT TASKBAR
I opened cmd.exe(Administrator)
C:> CD /D %USERPROFILE%\AppData\Local\CrashDumps
C:\Users\murugesan_openssl\AppData\Local\CrashDumps> DEL /P *.dmp
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\AcerRegistrationBackGroundTask.exe.5632.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\AcerRegistrationBackGroundTask.exe.5632.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\RtkAudUService64.exe.6696.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\StartMenuExperienceHost.exe.9520.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.10000.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.10948.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.1244.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.3124.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.3504.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.4304.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.4840.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.832.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\explorer.exe.932.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\StartMenuExperienceHost.exe.9520.dmp,Delete (Y/N)? Y
C:\Users\murugesan_openssl\AppData\Local\CrashDumps\msteamsupdate.exe.3064.dmp,Delete (Y/N)? Y
After executing above commands and re-installing ep_setup.exe made my %USERPROFILE%\Favorites\Links short cuts at task bar used to work finely at Windows 11 OS
Unfortunately, File Explorer is crashing :( It seems that File Explorer closed unexpectedly 3 times in less than 10 seconds each time when
starting up. This might indicate a problem caused by ExplorerPatcher, which might be unaware of
recent changes in Windows, for example when running on a new OS build.
Here are a few recommendations:
If an updated version is available, you can update ExplorerPatcher and restart File Explorer.
On GitHub, you can view releases, check the current status, discuss or review the latest issues.
If you suspect this is not caused by ExplorerPatcher, please uninstall any recently installed shell extensions or similar utilities.
I tried uninstalling the following:
01) Microsoft Windows Desktop Runtime - 6.0.0 (x64)
It was of no use
I tried uninstalling the following:
02) Microsoft Windows Desktop Runtime - 6.0.0 (x64)
It was of no use

HANDLE
01. FUTURE/SIGABRT/ALL KIND OF SIGNAL EXCEPTIONS IF ANY
02. PERFORMANCE
03. CODE AT DEVELOPMENT FORMAT FOR ALIGNMENT ACROSS PLATFORMS
04. TIME PASS/SELF KNOWLEDGE TRANSFER TO/FROM
Google:murugesan openssl
GIT source https://github.com/valinet/ExplorerPatcher/archive/refs/tags/22621.1992.56.3_5bda71f.tar.gz
https://github.com/valinet/ExplorerPatcher/archive/refs/tags/22621.1992.56.3_5bda71f.zip
https://support.github.com/ => sign up for git hub
ExplorerPatcher Version:
ExplorerPatcher-22621.1992.56.3_5bda71f

REASON FOR CHANGE:
1) Changing if conditions
	It is better to prevent accidents whereby you accidentally use an assignment operator = instead of the equal comparison operators != or <= or >= or ==.
2) I feel that it is better to include opening and closing paranthesis when handling if conditions:
	a) Easy for alignment
	b) Go to end of the current block
	c) Eash for searching using regular expression
	d) prevent any flow of exception due to conditional match/mismatchnig.
	e) easy to handle when same line of code used for enhancements.
3) Use related spacs at conditions when using if/else/else if statements.

SOURCE FILE NAME_01: ./ExplorerPatcher-22621.1992.56.3_5bda71f/ep_extra_valinet.win7alttab/main.c Function: int AltTab_LoadStringW(HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int cchBufferMax) Replace: if(uID == 0x3E8) ... else if(uID == 0x3EA) { if(cchBufferMax < MAX_PATH) ... for (int i = 0; i < len; ++i) if(lpBuffer[i] == L'&') lpBuffer[i] = L'\u200E'; With: if( 0x3E8 == uID ) ... else if( 0x3EA == uID ) { if( MAX_PATH > cchBufferMax ) ... for( int i = 0; len > i; ++i ) { if( L'&' == lpBuffer[i] ) { lpBuffer[i] = L'\u200E'; } } Function: HTHEME AltTab_OpenThemeData(HWND hwnd, LPCWSTR pszClassList) Replace: if(!wcscmp(pszClassList, L"AltTab")) return OpenThemeData(hwnd, L"WINDOW"); With: if( !wcscmp( pszClassList, L"AltTab" ) ) { return OpenThemeData( hwnd, L"WINDOW" ); } Function: HRESULT AltTab_DrawThemeTextEx(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int cchText, DWORD dwTextFlags, LPRECT pRect, const DTTOPTS* pOptions) Replace: if(hTheme2) hr = DrawThemeTextEx(hTheme2, hdc, iPartId + 1, iStateId, pszText, cchText, dwTextFlags, pRect, pOptions); if(hTheme2) CloseThemeData(hTheme2); With: if( hTheme2 ) { hr = DrawThemeTextEx( hTheme2, hdc, iPartId + 1, iStateId, pszText, cchText, dwTextFlags, pRect, pOptions ); } if( hTheme2 ) { CloseThemeData( hTheme2 ); } Function: BOOL AltTab_IsWindowEnabled(HWND hWnd) Replace: if(!IsWindowEnabled(hWnd)) return FALSE; ... if(isCloaked) return FALSE; if(sws_IsShellFrameWindow(hWnd) && !_sws_GhostWindowFromHungWindow(hWnd)) return TRUE; if(_sws_IsShellManagedWindow(hWnd) && !sws_WindowHelpers_ShouldTreatShellManagedWindowAsNotShellManaged(hWnd)) return FALSE; if(sws_WindowHelpers_IsWindowShellManagedByExplorerPatcher(hWnd)) return FALSE; With: if( !IsWindowEnabled( hWnd ) ) { return FALSE; } ... if( isCloaked ) { return FALSE; } if( ( sws_IsShellFrameWindow( hWnd ) ) && ( !_sws_GhostWindowFromHungWindow( hWnd ) ) ) { return TRUE; } if( ( _sws_IsShellManagedWindow( hWnd ) ) && ( !sws_WindowHelpers_ShouldTreatShellManagedWindowAsNotShellManaged( hWnd ) ) ) { return FALSE; } if( sws_WindowHelpers_IsWindowShellManagedByExplorerPatcher( hWnd ) ) { return FALSE; } Function: BOOL AltTab_PostMessageW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) Replace: if(hWnd == FindWindowW(L"Shell_TrayWnd", NULL) && uMsg == 0x5B7 && wParam == 0 && lParam == 0) { With: if( ( 0 == lParam ) && ( 0x5B7 == uMsg ) && ( 0 == wParam ) && ( hWnd == FindWindowW( L"Shell_TrayWnd", NULL ) ) ) { Function: __declspec(dllexport) void clean() Replace: if(pAltTabSSO) pAltTabSSO->lpVtbl->Release(pAltTabSSO); if(hAltTab) sws_WindowHelpers_Clear(); With: if( pAltTabSSO ) { pAltTabSSO->lpVtbl->Release( pAltTabSSO ); } if( hAltTab ) { sws_WindowHelpers_Clear(); } Function: __declspec(dllexport) int setup() Replace: if(hAltTab) { ... if(pDllGetClassObject && SUCCEEDED(pDllGetClassObject(&CLSID_AltTabSSO, &IID_IClassFactory, &pFactory)) && pFactory) { if(SUCCEEDED(pFactory->lpVtbl->CreateInstance(pFactory, NULL, &IID_IOleCommandTarget, &pAltTabSSO)) && pAltTabSSO) { if(SUCCEEDED(pAltTabSSO->lpVtbl->Exec(pAltTabSSO, &CGID_ShellServiceObject, 2, 0, NULL, NULL))) { With: if( hAltTab ) { ... if( pDllGetClassObject && pFactory && SUCCEEDED( pDllGetClassObject( &CLSID_AltTabSSO, &IID_IClassFactory, &pFactory ) ) ) { if( pAltTabSSO && SUCCEEDED( pFactory->lpVtbl->CreateInstance( pFactory, NULL, &IID_IOleCommandTarget, &pAltTabSSO ) ) ) { if( SUCCEEDED( pAltTabSSO->lpVtbl->Exec( pAltTabSSO, &CGID_ShellServiceObject, 2, 0, NULL, NULL ) ) ) {
SOURCE FILE NAME_02: ExplorerPatcher-22621.1992.56.3_5bda71f/ep_startmenu/ep_sm_main.c Function name: void Init() Replace: if(dwStartShowClassicMode) With: if( dwStartShowClassicMode ) Function name: wchar_t* GetCmdArguments(int* a1) Replace: if(!hOrig) ... if(hOrig) ... if(pGetCmdArguments) ... if(!bInstanced) Init(); With: if( !hOrig ) ... if( hOrig ) ... if( pGetCmdArguments ) ... if( !bInstanced ) { Init(); }
SOURCE FILE NAME_03: ExplorerPatcher-22621.1992.56.3_5bda71f/ExplorerPatcher/dllmain.c Replace: #ifdef _WIN64 #include "hooking.h" #endif ... #ifdef _WIN64 #include <valinet/pdb/pdb.h> #endif #if defined(DEBUG) | defined(_DEBUG) #define _LIBVALINET_DEBUG_HOOKING_IATPATCH #endif ... #ifdef _WIN64 #include "../ep_weather_host/ep_weather_host_h.h" IEPWeather* epw = NULL; CRITICAL_SECTION lock_epw; int prev_total_h = 0; HWND PeopleButton_LastHWND = NULL; #endif ... #ifndef _WIN64 RTL_OSVERSIONINFOW global_rovi; DWORD32 global_ubr; #endif ... #ifdef USE_PRIVATE_INTERFACES #include "ep_private.h" #endif #ifdef _WIN64 #include "symbols.h" #include "dxgi_imp.h" #include "ArchiveMenu.h" #include "StartupSound.h" #include "StartMenu.h" #include "GUI.h" #include "TaskbarCenter.h" #include "../libs/sws/SimpleWindowSwitcher/sws_WindowSwitcher.h" #endif ... #ifdef _WIN64 DWORD CheckForUpdatesThread(LPVOID timeout) ... if(hShell_TrayWnd) ... if(SUCCEEDED(hr)) ... if(SUCCEEDED(hr)) ... if(SUCCEEDED(hr)) ... if(SUCCEEDED(hr)) ... if(SUCCEEDED(hr)) ... if(SUCCEEDED(hr)) ... if(SUCCEEDED(hr)) ... if(hEvents[0] && hEvents[1]) ... if(bShowUpdateToast) ... if(hKey == NULL || hKey == INVALID_HANDLE_VALUE) ... if(hKey) ... if(dwUpdatePolicy != UPDATE_POLICY_MANUAL) ... if(toast) ... if(notifFactory) ... if(ToastNotificationHString) ... if(notifier) ... if(toastStatics) ... if(ToastNotificationManagerHString) ... if(AppIdHString) With: #ifdef _WIN64 #include "hooking.h" #endif ... #ifdef _WIN64 #include <valinet/pdb/pdb.h> #endif #if defined(DEBUG) | defined(_DEBUG) #define _LIBVALINET_DEBUG_HOOKING_IATPATCH #endif ... #ifdef _WIN64 #include "../ep_weather_host/ep_weather_host_h.h" IEPWeather* epw = NULL; CRITICAL_SECTION lock_epw; int prev_total_h = 0; HWND PeopleButton_LastHWND = NULL; #endif ... #ifndef _WIN64 // ALWAYS IT IS BETTER TO INTIALIZE RTL_OSVERSIONINFOW global_rovi{0}; DWORD32 global_ubr = 0; #endif ... #ifdef USE_PRIVATE_INTERFACES #include "ep_private.h" #endif #ifdef _WIN64 #include "symbols.h" #include "dxgi_imp.h" #include "ArchiveMenu.h" #include "StartupSound.h" #include "StartMenu.h" #include "GUI.h" #include "TaskbarCenter.h" #include "../libs/sws/SimpleWindowSwitcher/sws_WindowSwitcher.h" #endif ... #ifdef _WIN64 DWORD CheckForUpdatesThread( LPVOID timeout ) ... if( hShell_TrayWnd ) ... if( SUCCEEDED( hr) ) ... if( SUCCEEDED( hr ) ) ... if( SUCCEEDED( hr ) ) ... if( SUCCEEDED( hr ) ) ... if( SUCCEEDED( hr ) ) ... if( SUCCEEDED( hr ) ) ... if( SUCCEEDED( hr ) ) ... if( ( hEvents[0] ) && ( hEvents[1] ) ) ... if( bShowUpdateToast ) ... if( ( NULL == hKey ) || ( INVALID_HANDLE_VALUE == hKey ) ) ... if( hKey ) ... if( UPDATE_POLICY_MANUAL != dwUpdatePolicy ) ... if( toast ) ... if( notifFactory ) ... if( ToastNotificationHString ) ... if( notifier ) ... if( toastStatics ) ... if( ToastNotificationManagerHString ) ... if( AppIdHString ) Function: BOOL CheckIfMenuContainsOwnPropertiesItem(HMENU hMenu) Replace: for (int i = k - 1; i >= 0; i--) With: for( int i = k - 1; 0 <= i ; --i ) Function: HRESULT explorer_DrawThemeBackground( HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCRECT pRect, LPCRECT pClipRect ) Replace: for (unsigned int i = 0; i < DPA_GetPtrCount(hOrbCollection); ++i) With: for( unsigned int i = 0; DPA_GetPtrCount(hOrbCollection) > i; ++i ) Function: HRESULT explorer_CloseThemeData(HTHEME hTheme) Replace: for (unsigned int i = 0; i < DPA_GetPtrCount(hOrbCollection); ++i) ... OrbInfo* oi = DPA_FastGetPtr(hOrbCollection, i); if(oi->hTheme == hTheme) { ... break; } With: for( unsigned int i = 0; DPA_GetPtrCount(hOrbCollection) > i; ++i ) ... OrbInfo* oi = DPA_FastGetPtr(hOrbCollection, i); if( NULL != oi ) { if( hTheme == oi->hTheme ) { ... break; } } Function: HRESULT STDMETHODCALLTYPE EPCategorizer_ICategorizer_GetCategory(ICategorizer* _this, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD* rgCategoryIds) Replace: for (UINT i = 0; i < cidl; i++) ... for (int j = 0; j < ARRAYSIZE(driveCategoryMap); j++) With: for(UINT i = 0; cidl > i; ++i) ... for (int j = 0; ARRAYSIZE(driveCategoryMap) > j; ++j) Function: HRESULT STDMETHODCALLTYPE EPCategorizer_ICategorizer_GetCategoryInfo(ICategorizer* _this, DWORD dwCategoryId, CATEGORY_INFO* pci) Replace: if(!LoadStringW(hModule, dwCategoryId, pci->wszName, ARRAYSIZE(pci->wszName))) LoadStringW(hShell32, dwCategoryId, pci->wszName, ARRAYSIZE(pci->wszName)); With: if( !LoadStringW( hModule, dwCategoryId, pci->wszName, ARRAYSIZE(pci->wszName) ) ) { LoadStringW( hShell32, dwCategoryId, pci->wszName, ARRAYSIZE(pci->wszName) ); } Function: HRESULT STDMETHODCALLTYPE EPCategorizer_ICategorizer_CompareCategory(ICategorizer* _this, CATSORT_FLAGS csfFlags, DWORD dwCategoryId1, DWORD dwCategoryId2) Replace: for (int i = 0; i < categoryArraySize; i++) ... for (int i = 0; i < categoryArraySize; i++) ... if(diff < 0) return 0xFFFF; return diff > 0; With: for( int i = 0; categoryArraySize > i; ++i) ... for(int i = 0; categoryArraySize > i; ++i) ... if( 0 > diff ) { return 0xFFFF; } return 0 < diff; Function: void PatchExplorer_UpdateWindowAccentProperties() Replace: for (unsigned int i = 0; i < ntHeader->FileHeader.NumberOfSections; ++i) ... if(global_rovi.dwBuildNumber >= 22581) With: for( unsigned int i = 0; ntHeader->FileHeader.NumberOfSections > i; ++i) ... if( 22581 <= global_rovi.dwBuildNumber ) Viewed till line 9369 at "./ExplorerPatcher-22621.1992.56.3_5bda71f/ExplorerPatcher/dllmain.c"
Site developed and maintained by murugesan openssl Technical Enterprise knowledge transfer solutions © 2003 to 900000000/0 (INFINITE). All rights reserved. PrivacyPolicy