Author: arty
Date: Tue May 19 00:26:13 2009
New Revision: 40970

URL: http://svn.reactos.org/svn/reactos?rev=40970&view=rev
Log:
Patch by Alexander Potashev <[email protected]>

LDRP_PROCESS_CREATION_TIME was a _flag_ which is now removed, the new 
'LDRP_PROCESS_CREATION_TIME' is not a flag, it's just a constant to
identify a special value of LoadCount.


Modified:
    trunk/reactos/dll/ntdll/ldr/utils.c

Modified: trunk/reactos/dll/ntdll/ldr/utils.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/utils.c?rev=40970&r1=40969&r2=40970&view=diff
==============================================================================
--- trunk/reactos/dll/ntdll/ldr/utils.c [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/ldr/utils.c [iso-8859-1] Tue May 19 00:26:13 2009
@@ -21,7 +21,7 @@
 #define NDEBUG
 #include <debug.h>
 
-#define LDRP_PROCESS_CREATION_TIME 0x8000000
+#define LDRP_PROCESS_CREATION_TIME 0xffff
 #define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m)))
 
 /* GLOBALS *******************************************************************/
@@ -105,7 +105,7 @@
        RtlEnterCriticalSection (NtCurrentPeb()->LoaderLock);
      }
    LoadCount = Module->LoadCount;
-   if (Module->LoadCount > 0 && Module->LoadCount != 0xFFFF)
+   if (Module->LoadCount > 0 && Module->LoadCount != 
LDRP_PROCESS_CREATION_TIME)
      {
        Module->LoadCount--;
      }
@@ -124,7 +124,7 @@
        RtlEnterCriticalSection (NtCurrentPeb()->LoaderLock);
      }
    LoadCount = Module->LoadCount;
-   if (Module->LoadCount != 0xFFFF)
+   if (Module->LoadCount != LDRP_PROCESS_CREATION_TIME)
      {
        Module->LoadCount++;
      }
@@ -153,7 +153,7 @@
 static __inline VOID LdrpTlsCallback(PLDR_DATA_TABLE_ENTRY Module, ULONG 
dwReason)
 {
    PIMAGE_TLS_CALLBACK *TlsCallback;
-   if (Module->TlsIndex != 0xFFFF && Module->LoadCount == 0xFFFF)
+   if (Module->TlsIndex != 0xFFFF && Module->LoadCount == 
LDRP_PROCESS_CREATION_TIME)
      {
        TlsCallback = LdrpTlsArray[Module->TlsIndex].TlsAddressOfCallBacks;
        if (TlsCallback)
@@ -365,7 +365,7 @@
        while (Entry != ModuleListHead)
          {
            Module = CONTAINING_RECORD(Entry, LDR_DATA_TABLE_ENTRY, 
InLoadOrderLinks);
-           if (Module->LoadCount == 0xFFFF &&
+           if (Module->LoadCount == LDRP_PROCESS_CREATION_TIME &&
                Module->TlsIndex != 0xFFFF)
              {
                TlsDirectory = (PIMAGE_TLS_DIRECTORY)
@@ -592,7 +592,7 @@
        * loading while app is initializing
        * dll must not be unloaded
        */
-      Module->LoadCount = 0xFFFF;
+      Module->LoadCount = LDRP_PROCESS_CREATION_TIME;
     }
 
   Module->Flags = 0;
@@ -998,7 +998,7 @@
            0 == RtlCompareUnicodeString(&LdrpLastModule->FullDllName, 
&AdjustedName, TRUE)))
         {
           *Module = LdrpLastModule;
-          if (Ref && (*Module)->LoadCount != 0xFFFF)
+          if (Ref && (*Module)->LoadCount != LDRP_PROCESS_CREATION_TIME)
             {
               (*Module)->LoadCount++;
             }
@@ -1019,7 +1019,7 @@
            0 == RtlCompareUnicodeString(&ModulePtr->FullDllName, 
&AdjustedName, TRUE)))
         {
           *Module = LdrpLastModule = ModulePtr;
-          if (Ref && ModulePtr->LoadCount != 0xFFFF)
+          if (Ref && ModulePtr->LoadCount != LDRP_PROCESS_CREATION_TIME)
             {
               ModulePtr->LoadCount++;
             }
@@ -1078,9 +1078,8 @@
          */
         if (!NT_SUCCESS(Status))
           {
-             ULONG Flags = LDRP_PROCESS_CREATION_TIME;
              Status = LdrLoadDll(NULL,
-                                 &Flags,
+                                                                NULL,
                                  &DllName,
                                  &BaseAddress);
              if (NT_SUCCESS(Status))
@@ -1449,10 +1448,10 @@
    if (Load && !NT_SUCCESS(Status))
      {
        Status = LdrpLoadModule(SearchPath,
-                               NtCurrentPeb()->Ldr->Initialized ? 0 : 
LDRP_PROCESS_CREATION_TIME,
+                                                          0,
                                &DllName,
                                Module,
-                               NULL);
+                                                          NULL);
        if (NT_SUCCESS(Status))
          {
            Status = LdrFindEntryForName (&DllName, Module, FALSE);
@@ -2669,7 +2668,7 @@
    while (Entry != ModuleListHead)
      {
        Module = CONTAINING_RECORD(Entry, LDR_DATA_TABLE_ENTRY, 
InInitializationOrderModuleList);
-       if (((UnloadAll && Module->LoadCount == 0xFFFF) || Module->LoadCount == 
0) &&
+       if (((UnloadAll && Module->LoadCount == LDRP_PROCESS_CREATION_TIME) || 
Module->LoadCount == 0) &&
            Module->Flags & LDRP_ENTRY_PROCESSED &&
            !(Module->Flags & LDRP_UNLOAD_IN_PROGRESS))
          {
@@ -2682,7 +2681,7 @@
              {
                TRACE_LDR("Unload %wZ - Calling entry point at %x\n",
                          &Module->BaseDllName, Module->EntryPoint);
-               LdrpCallDllEntry(Module, DLL_PROCESS_DETACH, 
(PVOID)(Module->LoadCount == 0xFFFF ? 1 : 0));
+               LdrpCallDllEntry(Module, DLL_PROCESS_DETACH, 
(PVOID)(Module->LoadCount == LDRP_PROCESS_CREATION_TIME ? 1 : 0));
              }
            else
              {
@@ -2704,7 +2703,7 @@
            Module = CONTAINING_RECORD(Entry, LDR_DATA_TABLE_ENTRY, 
InInitializationOrderModuleList);
            Entry = Entry->Blink;
            if (Module->Flags & LDRP_UNLOAD_IN_PROGRESS &&
-               ((UnloadAll && Module->LoadCount != 0xFFFF) || 
Module->LoadCount == 0))
+               ((UnloadAll && Module->LoadCount != LDRP_PROCESS_CREATION_TIME) 
|| Module->LoadCount == 0))
              {
                /* remove the module entry from the list */
                RemoveEntryList (&Module->InLoadOrderLinks);
@@ -2767,7 +2766,7 @@
            Module->Flags |= LDRP_LOAD_IN_PROGRESS;
            TRACE_LDR("%wZ loaded - Calling init routine at %x for process 
attaching\n",
                      &Module->BaseDllName, Module->EntryPoint);
-           Result = LdrpCallDllEntry(Module, DLL_PROCESS_ATTACH, 
(PVOID)(Module->LoadCount == 0xFFFF ? 1 : 0));
+           Result = LdrpCallDllEntry(Module, DLL_PROCESS_ATTACH, 
(PVOID)(Module->LoadCount == LDRP_PROCESS_CREATION_TIME ? 1 : 0));
            if (!Result)
              {
                Status = STATUS_DLL_INIT_FAILED;

Reply via email to