Changeset 6015 for trunk/src/kernel32/windllbase.h
- Timestamp:
- Jun 15, 2001, 11:42:49 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/windllbase.h
r4523 r6015 1 /* $Id: windllbase.h,v 1. 7 2000-10-23 13:42:43 sandervlExp $ */1 /* $Id: windllbase.h,v 1.8 2001-06-15 09:42:48 bird Exp $ */ 2 2 3 3 /* … … 30 30 #define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008 31 31 32 #define DLL_EXTENSION 32 #define DLL_EXTENSION ".DLL" 33 33 34 34 //odin.ini section names to lookup renamed dlls 35 35 //i.e. OLE32 -> OLE32OS2 36 #define DLLRENAMEWIN_SECTION 36 #define DLLRENAMEWIN_SECTION "DLLRENAMEWIN" 37 37 //i.e. OLE32OS2 -> OLE32 38 38 #define DLLRENAMEOS2_SECTION "DLLRENAMEOS2" … … 45 45 46 46 #ifdef DEBUG 47 virtual 47 virtual ULONG AddRef(char *parentname = NULL); 48 48 #else 49 49 virtual ULONG AddRef(); 50 50 #endif 51 virtual 51 virtual ULONG Release(); 52 52 53 53 char *getName() { return szModule; }; 54 54 55 55 //do not call the ATTACH_THREAD, DETACH_THREAD functions 56 57 56 void disableThreadLibraryCalls() { fSkipThreadEntryCalls = TRUE; }; 57 void disableLibraryCalls() { fSkipEntryCalls = fSkipThreadEntryCalls = TRUE; }; 58 58 59 60 static 59 Win32DllBase *getNext() { return next; }; 60 static Win32DllBase *getFirst(); 61 61 62 62 //Send DLL_THREAD_ATTACH message to all dlls for a new thread … … 72 72 static void tlsDetachThreadFromAllDlls(); 73 73 74 75 76 77 74 BOOL attachProcess(); 75 BOOL detachProcess(); 76 BOOL attachThread(); 77 BOOL detachThread(); 78 78 79 79 //This counter is incremented when the dll has been loaded with LoadLibrary(Ex) 80 80 //(== not loaded on behalf of another dll or the main exe) 81 void incDynamicLib(); 82 void decDynamicLib(); 83 BOOL isDynamicLib() { return nrDynamicLibRef != 0; }; 84 85 void setUnloadOrder(Win32ImageBase *parent); 81 void incDynamicLib(); 82 void decDynamicLib(); 83 BOOL isDynamicLib() { return nrDynamicLibRef != 0; }; 86 84 87 void updateDependencies();85 void setUnloadOrder(Win32ImageBase *parent); 88 86 89 BOOL RemoveCircularDependency(Win32DllBase *parent);87 void updateDependencies(); 90 88 91 //Only called for kernel32 92 void DisableUnload() { fDisableUnload = TRUE; }; 89 BOOL RemoveCircularDependency(Win32DllBase *parent); 90 91 //Only called for kernel32 92 void DisableUnload() { fDisableUnload = TRUE; }; 93 93 94 94 static void deleteDynamicLibs(); 95 95 static void deleteAll(); 96 96 97 static 97 static BOOL isSystemDll(char *szFileName); 98 98 99 virtual BOOL isLxDll() = 0; 99 virtual BOOL isPe2LxDll() const = 0; 100 virtual BOOL isLxDll() const = 0; 100 101 virtual BOOL isDll(); 101 102 … … 107 108 static Win32DllBase *findModule(WIN32DLLENTRY DllEntryPoint); 108 109 static Win32DllBase *findModuleByAddr(ULONG address); 110 static Win32DllBase *findModuleByOS2Handle(HINSTANCE hinstance); 109 111 110 112 #ifdef DEBUG_ENABLELOG_LEVEL2 111 113 void printListOfDlls(); 112 114 #endif 113 115 114 116 protected: 115 117 #ifdef DEBUG 116 118 void printDependencies(char *parent); 117 119 #endif 118 120 119 121 BOOL fSkipThreadEntryCalls, fUnloaded, fAttachedToProcess, fSkipEntryCalls; 120 122 121 123 WIN32DLLENTRY dllEntryPoint; 122 124 123 125 LONG referenced; 124 126 125 127 //This counter is incremented when the dll has been loaded with LoadLibrary(Ex) 126 128 //(== not loaded on behalf of another dll or the main exe) 127 129 BOOL nrDynamicLibRef; 128 130 129 131 BOOL fInserted; //inserted in dll list 130 132 131 132 BOOLfDisableUnload;133 //This flag is set when a dll has been loaded with DosLoadModule 134 BOOL fDisableUnload; 133 135 134 136 static Win32DllBase *head; 135 137 Win32DllBase *next; 136 138 private: 137 139 static Queue loadLibDlls;
Note:
See TracChangeset
for help on using the changeset viewer.