Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

29 lines
1.1 KiB

The AMD64 kernel is loaded with an X86 loader. This is to enable a single
loader to dual-boot either an i386 or Amd64 build. The remainder of this
text refers to only the i386 version of the loader.
There are two new AMD64-specific exports in boot.lib:
ARC_STATUS
BlAmd64CheckForLongMode(
IN ULONG LoadDeviceId,
IN OUT PCHAR KernelPath,
IN PCHAR KernelFileName
);
extern BOOLEAN BlAmd64UseLongMode;
BlAmd64CheckForLongMode() is called from the loader. If an AMD64 kernel
image is found, then the global BlAmd64UseLongMode is set to TRUE. From
this point forward, all images are expected to be AMD64 images.
Almost all of the code specific to AMD64 support is found in
boot\lib\amd64. At present, the contents of this directory is available to
only a few people. However the loader, obviously, must build for
everybody.
To facilitate this, _X86AMD64_ is defined while building the boot\lib
directory if files within the amd64 directory are present on the build
machine. If they are not present, then a stub version of
BlAmd64CheckForLongMode() is created.