NTSTATUS
MmLoadAndLockSystemImage(
  IN  PUNICODE_STRING ImageFileName,
  IN  PUNICODE_STRING NamePrefix OPTIONAL,
  IN  PUNICODE_STRING LoadedBaseName OPTIONAL,
  OUT PVOID *ImageHandle,
  OUT PVOID *ImageBaseAddress
  );

Routine Description:

    This routine reads the image pages from the specified section into
    the system and returns the address of the DLL's header.  Very similar
    to MmLoadSystemImage, except that it also locks down the driver pages.
    This is needed for things like the dump driver because we cannot page it
    back in after the system has crashed (when we want to write the system
    dump to the pagefile).

    At successful completion, the Section is referenced so it remains
    until the system image is unloaded.

Arguments:

    ImageName - Supplies the Unicode name of the image to load.

    ImageFileName - Supplies the full path name (including the image name)
                    of the image to load.

    NamePrefix - Supplies the prefix to use with the image name on load
                 operations.  This is used to load the same image multiple
                 times, by using different prefixes

    LoadedBaseName - If present, supplies the base name to use on the
                     loaded image instead of the base name found on the
                     image name.

    ImageHandle - Returns an opaque pointer to the referenced section object
                  of the image that was loaded.

    ImageBaseAddress - Returns the image base within the system.

Return Value:

    Status of the load operation.