Microsoft KB Archive/248992

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 12:50, 21 July 2020 by X010 (talk | contribs) (Text replacement - """ to """)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Base


INFO: Migration of Boot Loader from Windows CE 2.11 to 2.12

Article ID: 248992

Article Last Modified on 12/26/2003



APPLIES TO

  • Microsoft Windows CE Platform Builder 2.11
  • Microsoft Windows CE Platform Builder 2.12



This article was previously published under Q248992

SUMMARY

When migrating your boot loader from Windows CE 2.11 to Windows CE 2.12, you must ensure that the following change is made:

Before compiling, make a code change to the SOURCES file for Nk.exe and the boot loader as shown below to reflect the LDEFINE flags as appropriate:

!IF "$(_WINCEOSVER)"=="300" || "$(_WINCEOSVER)"=="212"

LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:CV /FIXED:NO

!ELSE

LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:BOTH,FIXUP

!ENDIF
                

MORE INFORMATION

ROMIMAGE gives unpredictable results if EXEBASE is not specified for Nk.exe. The EXEBASE value is also ignored if KERNELFIXUPS=on (default case). On x86 systems, the definition of EXEBASE is very significant because in the Init.asm file, EXEBASE is used by OFFSET32 in the following line:

mov ebx, OFFSET32 PagingEnabled
                

However, OFFSET32 is resolved at link time and EXEBASE is used to determine the 32-bit number. If EXEBASE is not present as a definite value when ROMIMAGE is executed, the system will malfunction. Updating EXEBASE works around this issue.

Keywords: kbinfo KB248992