VirtualBox

Ignore:
Timestamp:
Oct 10, 2014 1:44:08 AM (10 years ago)
Author:
vboxsync
Message:

SUP: Try to work around sakfile.sys bsod and dgmaster.sys.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyProcess-win.cpp

    r52973 r53017  
    129129    /** Type of verification to perform. */
    130130    SUPHARDNTVPKIND         enmKind;
     131    /** Combination of SUPHARDNTVP_F_XXX. */
     132    uint32_t                fFlags;
    131133    /** The result. */
    132134    int                     rcResult;
     
    15001502                                            "NtFreeVirtualMemory (%p LB %#zx) failed: %#x",
    15011503                                            MemInfo.BaseAddress, MemInfo.RegionSize, rcNt);
     1504                    /* The Trend Micro sakfile.sys BSOD kludge. */
     1505                    if (pThis->fFlags & SUPHARDNTVP_F_EXEC_ALLOC_REPLACE_WITH_ZERO)
     1506                    {
     1507                        pvFree = MemInfo.BaseAddress;
     1508                        cbFree = MemInfo.RegionSize;
     1509                        rcNt = NtAllocateVirtualMemory(pThis->hProcess, &pvFree, 0, &cbFree, MEM_COMMIT, PAGE_READWRITE);
     1510                        if (!NT_SUCCESS(rcNt))
     1511                            supHardNtVpSetInfo2(pThis, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED,
     1512                                                "NtAllocateVirtualMemory (%p LB %#zx) failed with rcNt=%#x allocating "
     1513                                                "replacement memory for working around buggy protection software. "
     1514                                                "See VBoxStartup.log for more details",
     1515                                                MemInfo.BaseAddress, MemInfo.RegionSize, rcNt);
     1516                        if (pvFree != MemInfo.BaseAddress)
     1517                            supHardNtVpSetInfo2(pThis, VERR_SUP_VP_REPLACE_VIRTUAL_MEMORY_FAILED,
     1518                                                "We wanted NtAllocateVirtualMemory to get us %p LB %#zx, but it returned %p LB %#zx.",
     1519                                                MemInfo.BaseAddress, MemInfo.RegionSize, pvFree, cbFree, rcNt);
     1520                    }
    15021521                }
    15031522                /*
     
    21242143 * @param   hThread             A thread in the process (the caller).
    21252144 * @param   enmKind             The kind of process verification to perform.
     2145 * @param   fFlags              Valid combination of SUPHARDNTVP_F_XXX flags.
    21262146 * @param   pErrInfo            Pointer to error info structure. Optional.
    21272147 * @param   pcFixes             Where to return the number of fixes made during
    21282148 *                              purification.  Optional.
    21292149 */
    2130 DECLHIDDEN(int) supHardenedWinVerifyProcess(HANDLE hProcess, HANDLE hThread, SUPHARDNTVPKIND enmKind,
     2150DECLHIDDEN(int) supHardenedWinVerifyProcess(HANDLE hProcess, HANDLE hThread, SUPHARDNTVPKIND enmKind, uint32_t fFlags,
    21312151                                            uint32_t *pcFixes, PRTERRINFO pErrInfo)
    21322152{
     
    21522172        {
    21532173            pThis->enmKind  = enmKind;
     2174            pThis->fFlags   = fFlags;
    21542175            pThis->rcResult = VINF_SUCCESS;
    21552176            pThis->hProcess = hProcess;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette