[NTDLL/LDR]
[reactos.git] / reactos / dll / ntdll / ldr / utils.c
index cd7c7d6..e03cb12 100644 (file)
@@ -2950,76 +2950,6 @@ LdrQueryProcessModuleInformation(IN PRTL_PROCESS_MODULES ModuleInformation OPTIO
     return(Status);
 }
 
-
-static BOOLEAN
-LdrpCheckImageChecksum (IN PVOID BaseAddress,
-                        IN ULONG ImageSize)
-{
-    PIMAGE_NT_HEADERS Header;
-    PUSHORT Ptr;
-    ULONG Sum;
-    ULONG CalcSum;
-    ULONG HeaderSum;
-    ULONG i;
-
-    Header = RtlImageNtHeader (BaseAddress);
-    if (Header == NULL)
-        return FALSE;
-
-    HeaderSum = Header->OptionalHeader.CheckSum;
-    if (HeaderSum == 0)
-        return TRUE;
-
-    Sum = 0;
-    Ptr = (PUSHORT) BaseAddress;
-    for (i = 0; i < ImageSize / sizeof (USHORT); i++)
-    {
-        Sum += (ULONG)*Ptr;
-        if (HIWORD(Sum) != 0)
-        {
-            Sum = LOWORD(Sum) + HIWORD(Sum);
-        }
-        Ptr++;
-    }
-
-    if (ImageSize & 1)
-    {
-        Sum += (ULONG)*((PUCHAR)Ptr);
-        if (HIWORD(Sum) != 0)
-        {
-            Sum = LOWORD(Sum) + HIWORD(Sum);
-        }
-    }
-
-    CalcSum = (USHORT)(LOWORD(Sum) + HIWORD(Sum));
-
-    /* Subtract image checksum from calculated checksum. */
-    /* fix low word of checksum */
-    if (LOWORD(CalcSum) >= LOWORD(HeaderSum))
-    {
-        CalcSum -= LOWORD(HeaderSum);
-    }
-    else
-    {
-        CalcSum = ((LOWORD(CalcSum) - LOWORD(HeaderSum)) & 0xFFFF) - 1;
-    }
-
-    /* fix high word of checksum */
-    if (LOWORD(CalcSum) >= HIWORD(HeaderSum))
-    {
-        CalcSum -= HIWORD(HeaderSum);
-    }
-    else
-    {
-        CalcSum = ((LOWORD(CalcSum) - HIWORD(HeaderSum)) & 0xFFFF) - 1;
-    }
-
-    /* add file length */
-    CalcSum += ImageSize;
-
-    return (BOOLEAN)(CalcSum == HeaderSum);
-}
-
 /*
  * Compute size of an image as it is actually present in virt memory
  * (i.e. excluding NEVER_LOAD sections)
@@ -3049,100 +2979,6 @@ LdrpGetResidentSize(PIMAGE_NT_HEADERS NTHeaders)
     return ResidentSize;
 }
 
-
-/***************************************************************************
- * NAME                                                         EXPORTED
- *      LdrVerifyImageMatchesChecksum
- *
- * DESCRIPTION
- *
- * ARGUMENTS
- *
- * RETURN VALUE
- *
- * REVISIONS
- *
- * NOTE
- *
- * @implemented
- */
-NTSTATUS NTAPI
-LdrVerifyImageMatchesChecksum (IN HANDLE FileHandle,
-                               IN PLDR_CALLBACK Callback,
-                               IN PVOID CallbackContext,
-                               OUT PUSHORT ImageCharacterstics)
-{
-    FILE_STANDARD_INFORMATION FileInfo;
-    IO_STATUS_BLOCK IoStatusBlock;
-    HANDLE SectionHandle;
-    SIZE_T ViewSize;
-    PVOID BaseAddress;
-    BOOLEAN Result;
-    NTSTATUS Status;
-
-    DPRINT ("LdrVerifyImageMatchesChecksum() called\n");
-
-    Status = NtCreateSection (&SectionHandle,
-                              SECTION_MAP_READ,
-                              NULL,
-                              NULL,
-                              PAGE_READONLY,
-                              SEC_COMMIT,
-                              FileHandle);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1 ("NtCreateSection() failed (Status %lx)\n", Status);
-        return Status;
-    }
-
-    ViewSize = 0;
-    BaseAddress = NULL;
-    Status = NtMapViewOfSection (SectionHandle,
-                                 NtCurrentProcess (),
-                                 &BaseAddress,
-                                 0,
-                                 0,
-                                 NULL,
-                                 &ViewSize,
-                                 ViewShare,
-                                 0,
-                                 PAGE_READONLY);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1 ("NtMapViewOfSection() failed (Status %lx)\n", Status);
-        NtClose (SectionHandle);
-        return Status;
-    }
-
-    Status = NtQueryInformationFile(FileHandle,
-                                    &IoStatusBlock,
-                                    &FileInfo,
-                                    sizeof (FILE_STANDARD_INFORMATION),
-                                    FileStandardInformation);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1 ("NtMapViewOfSection() failed (Status %lx)\n", Status);
-        NtUnmapViewOfSection (NtCurrentProcess(),
-                              BaseAddress);
-        NtClose (SectionHandle);
-        return Status;
-    }
-
-    Result = LdrpCheckImageChecksum(BaseAddress,
-                                    FileInfo.EndOfFile.u.LowPart);
-    if (Result == FALSE)
-    {
-        Status = STATUS_IMAGE_CHECKSUM_MISMATCH;
-    }
-
-    NtUnmapViewOfSection (NtCurrentProcess(),
-                          BaseAddress);
-
-    NtClose(SectionHandle);
-
-    return Status;
-}
-
 PIMAGE_BASE_RELOCATION
 NTAPI
 LdrProcessRelocationBlock(