return VERR_INVALID_EXE_SIGNATURE; } } /* * Create image interpreter instance depending on the signature. */ if (uSign.u32 == IMAGE_NT_SIGNATURE) #ifdef LDR_WITH_PE rc = rtldrPEOpen(pReader, fFlags, enmArch, offHdr, phMod); #else rc = VERR_PE_EXE_NOT_SUPPORTED; #endif else if (uSign.u32 == IMAGE_ELF_SIGNATURE) #if defined(LDR_WITH_ELF) rc = rtldrELFOpen(pReader, fFlags, enmArch, phMod); #else rc = VERR_ELF_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_LX_SIGNATURE) #ifdef LDR_WITH_LX rc = rtldrLXOpen(pReader, fFlags, enmArch, offHdr, phMod); #else rc = VERR_LX_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_LE_SIGNATURE) #ifdef LDR_WITH_LE rc = rtldrLEOpen(pReader, fFlags, enmArch, phMod); #else rc = VERR_LE_EXE_NOT_SUPPORTED; #endif
return VERR_INVALID_EXE_SIGNATURE; } } /* * Create image interpreter instance depending on the signature. */ if (uSign.u32 == IMAGE_NT_SIGNATURE) #ifdef LDR_WITH_PE rc = rtldrPEOpen(pReader, fFlags, enmArch, offHdr, phMod, pErrInfo); #else rc = VERR_PE_EXE_NOT_SUPPORTED; #endif else if (uSign.u32 == IMAGE_ELF_SIGNATURE) #if defined(LDR_WITH_ELF) rc = rtldrELFOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_ELF_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_LX_SIGNATURE) #ifdef LDR_WITH_LX rc = rtldrLXOpen(pReader, fFlags, enmArch, offHdr, phMod, pErrInfo); #else rc = VERR_LX_EXE_NOT_SUPPORTED; #endif else if (uSign.au16[0] == IMAGE_LE_SIGNATURE) #ifdef LDR_WITH_LE rc = rtldrLEOpen(pReader, fFlags, enmArch, phMod, pErrInfo); #else rc = VERR_LE_EXE_NOT_SUPPORTED; #endif