Changeset 2858 for trunk/kLdr/kLdrModPE.c
- Timestamp:
- Nov 6, 2006, 1:23:14 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kLdr/kLdrModPE.c
r2857 r2858 204 204 */ 205 205 cchFilename = kLdrHlpStrLen(kLdrRdrName(pRdr)); 206 cb = sizeof(KLDRMOD) 207 + s.FileHdr.NumberOfSections * sizeof(KLDRSEG) 208 + sizeof(KLDRMODPE) - sizeof(IMAGE_SECTION_HEADER) 209 + s.FileHdr.NumberOfSections * sizeof(IMAGE_SECTION_HEADER) 206 cb = KLDR_ALIGN_Z(KLDR_OFFSETOF(KLDRMODPE, aShdrs[s.FileHdr.NumberOfSections]), 16) 207 + KLDR_OFFSETOF(KLDRMOD, aSegments[s.FileHdr.NumberOfSections + 1]) 210 208 + cchFilename + 1; 211 209 pModPE = (PKLDRMODPE)kldrHlpAlloc(cb); 212 210 if (!pModPE) 213 211 return KLDR_ERR_NO_MEMORY; 212 *ppModPE = pModPE; 214 213 215 214 /* KLDRMOD */ 216 pMod = (PKLDRMOD)((uint8_t *)pModPE + sizeof(KLDRMOD) + (s.FileHdr.NumberOfSections + 1) * sizeof(KLDRSEG));215 pMod = (PKLDRMOD)((uint8_t *)pModPE + KLDR_ALIGN_Z(KLDR_OFFSETOF(KLDRMODPE, aShdrs[s.FileHdr.NumberOfSections]), 16)); 217 216 pMod->pvData = pModPE; 218 217 pMod->pRdr = pRdr; … … 252 251 pModPE->Hdrs.Signature = s.Signature; 253 252 pModPE->Hdrs.FileHeader = s.FileHdr; 254 *ppModPE = pModPE;255 253 256 254 /* … … 811 809 812 810 /** @copydoc kLdrModEnumSymbols */ 813 static int kldrModPEEnumSymbols(PKLDRMOD pMod, uint32_t fFlags,const void *pvBits, KLDRADDR BaseAddress,814 PFNKLDRMODENUMSYMS pfnCallback, void *pvUser)811 static int kldrModPEEnumSymbols(PKLDRMOD pMod, const void *pvBits, KLDRADDR BaseAddress, 812 uint32_t fFlags, PFNKLDRMODENUMSYMS pfnCallback, void *pvUser) 815 813 { 816 814 PKLDRMODPE pModPE = (PKLDRMODPE)pMod->pvData; … … 890 888 891 889 /** @copydoc kLdrModGetImport */ 892 static int kldrModPEGetImport(PKLDRMOD pMod, void *pvBits, uint32_t iImport, char *pszName, size_t cchName)890 static int kldrModPEGetImport(PKLDRMOD pMod, const void *pvBits, uint32_t iImport, char *pszName, size_t cchName) 893 891 { 894 892 PKLDRMODPE pModPE = (PKLDRMODPE)pMod->pvData; … … 1940 1938 } 1941 1939 1940 1941 /** 1942 * The PE module interpreter method table. 1943 */ 1944 KLDRMODOPS g_kLdrModPEOps = 1945 { 1946 "PE", 1947 NULL, 1948 kldrModPECreate, 1949 kldrModPEDestroy, 1950 kldrModPEQuerySymbol, 1951 kldrModPEEnumSymbols, 1952 kldrModPEGetImport, 1953 kldrModPENumberOfImports, 1954 NULL /* can execute one is optional */, 1955 kldrModPEGetStackInfo, 1956 kldrModPEQueryMainEntrypoint, 1957 kldrModPEEnumDbgInfo, 1958 kldrModPEHasDbgInfo, 1959 kldrModPEMap, 1960 kldrModPEUnmap, 1961 kldrModPEAllocTLS, 1962 kldrModPEFreeTLS, 1963 kldrModPEReload, 1964 kldrModPEFixupMapping, 1965 kldrModPECallInit, 1966 kldrModPECallTerm, 1967 kldrModPECallThread, 1968 kldrModPESize, 1969 kldrModPEGetBits, 1970 kldrModPERelocateBits, 1971 42 /* the end */ 1972 };
Note:
See TracChangeset
for help on using the changeset viewer.