Changeset 3578 for trunk/kStuff/kLdr/kLdrModPE.c
- Timestamp:
- Sep 2, 2007, 10:55:51 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kStuff/kLdr/kLdrModPE.c
r3574 r3578 105 105 PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser); 106 106 107 static int kldrModPEDoCreate(PK LDRRDR pRdr, KLDRFOFF offNewHdr, PKLDRMODPE *ppMod);107 static int kldrModPEDoCreate(PKRDR pRdr, KLDRFOFF offNewHdr, PKLDRMODPE *ppMod); 108 108 /*static void kldrModPEDoLoadConfigConversion(PIMAGE_LOAD_CONFIG_DIRECTORY64 pLoadCfg); */ 109 109 static int kLdrModPEDoOptionalHeaderValidation(PKLDRMODPE pModPE); … … 134 134 * @param ppMod Where to store the module instance pointer. 135 135 */ 136 static int kldrModPECreate(PCKLDRMODOPS pOps, PK LDRRDR pRdr, KLDRFOFF offNewHdr, PPKLDRMOD ppMod)136 static int kldrModPECreate(PCKLDRMODOPS pOps, PKRDR pRdr, KLDRFOFF offNewHdr, PPKLDRMOD ppMod) 137 137 { 138 138 PKLDRMODPE pModPE; … … 159 159 * simplify cleanup on failure. 160 160 */ 161 static int kldrModPEDoCreate(PK LDRRDR pRdr, KLDRFOFF offNewHdr, PKLDRMODPE *ppModPE)161 static int kldrModPEDoCreate(PKRDR pRdr, KLDRFOFF offNewHdr, PKLDRMODPE *ppModPE) 162 162 { 163 163 struct … … 178 178 * Read the signature and file header. 179 179 */ 180 rc = k LdrRdrRead(pRdr, &s, sizeof(s), offNewHdr > 0 ? offNewHdr : 0);180 rc = kRdrRead(pRdr, &s, sizeof(s), offNewHdr > 0 ? offNewHdr : 0); 181 181 if (rc) 182 182 return rc; … … 199 199 * Calc the instance size, allocate and initialize it. 200 200 */ 201 cchFilename = kHlpStrLen(k LdrRdrName(pRdr));201 cchFilename = kHlpStrLen(kRdrName(pRdr)); 202 202 cb = K_ALIGN_Z(K_OFFSETOF(KLDRMODPE, aShdrs[s.FileHdr.NumberOfSections]), 16) 203 203 + K_OFFSETOF(KLDRMOD, aSegments[s.FileHdr.NumberOfSections + 1]) … … 216 216 pMod->cchFilename = cchFilename; 217 217 pMod->pszFilename = (char *)&pMod->aSegments[pMod->cSegments]; 218 kHlpMemCopy((char *)pMod->pszFilename, k LdrRdrName(pRdr), cchFilename + 1);218 kHlpMemCopy((char *)pMod->pszFilename, kRdrName(pRdr), cchFilename + 1); 219 219 pMod->pszName = kHlpGetFilename(pMod->pszFilename); 220 220 pMod->cchName = cchFilename - (pMod->pszName - pMod->pszFilename); … … 261 261 */ 262 262 off = pModPE->offHdrs + sizeof(pModPE->Hdrs.Signature) + sizeof(pModPE->Hdrs.FileHeader); 263 rc = k LdrRdrRead(pRdr, &pModPE->Hdrs.OptionalHeader, pModPE->Hdrs.FileHeader.SizeOfOptionalHeader, off);263 rc = kRdrRead(pRdr, &pModPE->Hdrs.OptionalHeader, pModPE->Hdrs.FileHeader.SizeOfOptionalHeader, off); 264 264 if (rc) 265 265 return rc; … … 267 267 kldrModPEDoOptionalHeaderConversion(&pModPE->Hdrs.OptionalHeader); 268 268 off += pModPE->Hdrs.FileHeader.SizeOfOptionalHeader; 269 rc = k LdrRdrRead(pRdr, &pModPE->aShdrs[0], sizeof(IMAGE_SECTION_HEADER) * pModPE->Hdrs.FileHeader.NumberOfSections, off);269 rc = kRdrRead(pRdr, &pModPE->aShdrs[0], sizeof(IMAGE_SECTION_HEADER) * pModPE->Hdrs.FileHeader.NumberOfSections, off); 270 270 if (rc) 271 271 return rc; … … 530 530 if (pMod->pRdr) 531 531 { 532 rc = k LdrRdrClose(pMod->pRdr);532 rc = kRdrClose(pMod->pRdr); 533 533 pMod->pRdr = NULL; 534 534 } … … 553 553 { 554 554 PKLDRMOD pMod = pModPE->pMod; 555 unsignedfFixed;555 KBOOL fFixed; 556 556 void *pvBase; 557 557 int rc; … … 575 575 576 576 /* try do the prepare */ 577 rc = k LdrRdrMap(pMod->pRdr, &pvBase, pMod->cSegments, pMod->aSegments, fFixed);577 rc = kRdrMap(pMod->pRdr, &pvBase, pMod->cSegments, pMod->aSegments, fFixed); 578 578 if (rc) 579 579 return rc; … … 616 616 * Try unmap the image. 617 617 */ 618 rc = k LdrRdrUnmap(pMod->pRdr, (void *)pvMapping, pMod->cSegments, pMod->aSegments);618 rc = kRdrUnmap(pMod->pRdr, (void *)pvMapping, pMod->cSegments, pMod->aSegments); 619 619 if (rc) 620 620 return rc; … … 1315 1315 1316 1316 /* the file provider does it all */ 1317 return k LdrRdrRefresh(pMod->pRdr, (void *)pModPE->pvMapping, pMod->cSegments, pMod->aSegments);1317 return kRdrRefresh(pMod->pRdr, (void *)pModPE->pvMapping, pMod->cSegments, pMod->aSegments); 1318 1318 } 1319 1319 … … 1334 1334 * Before doing anything we'll have to make all pages writable. 1335 1335 */ 1336 rc = k LdrRdrProtect(pMod->pRdr, (void *)pModPE->pvMapping, pMod->cSegments, pMod->aSegments, 1 /* unprotect */);1336 rc = kRdrProtect(pMod->pRdr, (void *)pModPE->pvMapping, pMod->cSegments, pMod->aSegments, 1 /* unprotect */); 1337 1337 if (rc) 1338 1338 return rc; … … 1353 1353 * Restore protection. 1354 1354 */ 1355 rc2 = k LdrRdrProtect(pMod->pRdr, (void *)pModPE->pvMapping, pMod->cSegments, pMod->aSegments, 0 /* protect */);1355 rc2 = kRdrProtect(pMod->pRdr, (void *)pModPE->pvMapping, pMod->cSegments, pMod->aSegments, 0 /* protect */); 1356 1356 if (!rc && rc2) 1357 1357 rc = rc2; … … 1914 1914 || !pMod->aSegments[i].Alignment) 1915 1915 continue; 1916 rc = k LdrRdrRead(pMod->pRdr,1916 rc = kRdrRead(pMod->pRdr, 1917 1917 (KU8 *)pvBits + (pMod->aSegments[i].LinkAddress - pModPE->Hdrs.OptionalHeader.ImageBase), 1918 1918 pMod->aSegments[i].cbFile,
Note:
See TracChangeset
for help on using the changeset viewer.