Lines Matching defs:pEntry
1970 * @param pEntry The loader cache entry.
1974 DECLHIDDEN(int) supHardNtLdrCacheEntryVerify(PSUPHNTLDRCACHEENTRY pEntry, PCRTUTF16 pwszName, PRTERRINFO pErrInfo)
1977 if (!pEntry->fVerified)
1979 rc = supHardenedWinVerifyImageByLdrMod(pEntry->hLdrMod, pwszName, pEntry->pNtViRdr,
1981 pEntry->fVerified = RT_SUCCESS(rc);
1995 * @param pEntry The loader cache entry.
2002 DECLHIDDEN(int) supHardNtLdrCacheEntryGetBits(PSUPHNTLDRCACHEENTRY pEntry, uint8_t **ppbBits,
2011 if (!pEntry->pbBits)
2013 size_t cbBits = RTLdrSize(pEntry->hLdrMod);
2016 pEntry->pszName, cbBits, cbBits);
2018 pEntry->pbBits = (uint8_t *)RTMemAllocZ(cbBits);
2019 if (!pEntry->pbBits)
2021 cbBits, pEntry->pszName);
2023 pEntry->fValidBits = false; /* paranoia */
2025 rc = RTLdrGetBits(pEntry->hLdrMod, pEntry->pbBits, uBaseAddress, pfnGetImport, pvUser);
2028 pEntry->pszName, rc);
2029 pEntry->uImageBase = uBaseAddress;
2030 pEntry->fValidBits = pfnGetImport == NULL;
2040 else if ( !pEntry->fValidBits
2041 || pEntry->uImageBase != uBaseAddress
2044 pEntry->fValidBits = false;
2046 rc = RTLdrGetBits(pEntry->hLdrMod, pEntry->pbBits, uBaseAddress, pfnGetImport, pvUser);
2049 pEntry->pszName, rc);
2050 pEntry->uImageBase = uBaseAddress;
2051 pEntry->fValidBits = pfnGetImport == NULL;
2054 *ppbBits = pEntry->pbBits;
2063 * @param pEntry The entry to delete.
2065 static void supHardNTLdrCacheDeleteEntry(PSUPHNTLDRCACHEENTRY pEntry)
2067 if (pEntry->pbBits)
2069 RTMemFree(pEntry->pbBits);
2070 pEntry->pbBits = NULL;
2073 if (pEntry->hLdrMod != NIL_RTLDRMOD)
2075 RTLdrClose(pEntry->hLdrMod);
2076 pEntry->hLdrMod = NIL_RTLDRMOD;
2077 pEntry->pNtViRdr = NULL;
2079 else if (pEntry->pNtViRdr)
2081 pEntry->pNtViRdr->Core.pfnDestroy(&pEntry->pNtViRdr->Core);
2082 pEntry->pNtViRdr = NULL;
2085 if (pEntry->hFile)
2087 NtClose(pEntry->hFile);
2088 pEntry->hFile = NULL;
2091 pEntry->pszName = NULL;
2092 pEntry->fVerified = false;
2093 pEntry->fValidBits = false;
2094 pEntry->uImageBase = 0;
2137 static int supHardNtLdrCacheNewEntry(PSUPHNTLDRCACHEENTRY pEntry, const char *pszName, PUNICODE_STRING pUniStrPath,
2202 pEntry->pszName = pszName;
2203 pEntry->hLdrMod = hLdrMod;
2204 pEntry->pNtViRdr = pNtViRdr;
2205 pEntry->hFile = hFile;
2206 pEntry->pbBits = NULL;
2207 pEntry->fVerified = false;
2208 pEntry->fValidBits = false;
2209 pEntry->uImageBase = ~(uintptr_t)0;