На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

ReBaseImage



The ReBaseImage function is used to change the load address for a Win32 image, which reduces the required load time for a DLL.

BOOL ReBaseImage(

IN LPSTR CurrentImageName,
IN LPSTR SymbolPath,
IN BOOL fReBase,
IN BOOL fRebaseSysfileOk,
IN BOOL fGoingDown,
IN DWORD CheckImageSize,
OUT LPDWORD OldImageSize,
OUT LPDWORD OldImageBase,
OUT LPDWORD NewImageSize,
IN OUT LPDWORD NewImageBase,
IN DWORD TimeStamp
);


Parameters

CurrentImageName

The filename that is rebased.

SymbolPath

The path to find the corresponding symbol file.

fReBase

The image is rebased if this value is TRUE.

fRebaseSysfileOk

System images can be rebased only if this value is TRUE. A system image is one that has a preferred load address of 0x80000000 or greater.

fGoingDown

If the image should be rebased below the given base, this value is TRUE.

CheckImageSize

The maximum size that the image can grow to, or zero if there is no limit.

OldImageSize

The original image size before the rebase operation.

OldImageBase

The original image base before the rebase operation.

NewImageSize

The new image size after the rebase operation.

NewImageBase

The new image base after the rebase operation.

TimeStamp

The new time stamp for the image. Use the C run-time (CRT) function time to retrieve a compatible time stamp value. The value must be represented in the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Universal Coordinated Time, according to the system clock.



Return Values

If the function succeeds, the return value is TRUE.
If the function fails, then the return value is FALSE. To retrieve extended error information, call GetLastError.

Remarks

The ReBaseImage function changes the desired load address for a Win32 image. This operation involves reading the entire image and updating all fixups, debug information, checksum, and time stamp values. The purpose of this function is to reduce the required load time for DLLs. If an application can rely on a DLL being loaded at the desired load address, then the system loader does not have to relocate the image. The image is simply loaded into the application's virtual address space and the DLL's initialization routine is called, if one is present.

A well-behaved application has all its DLLs rebased so they each fall within a unique range of the virtual address space. Microsoft publishes an address range that applications should use for their DLLs. By using this address range, the ReBaseImage function, and the list of application DLLs, each one of the DLLs can be assigned a unique base address. This process can be part of the build process or part of the final release procedure for the application.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

ReBaseImage



Функция ReBaseImage использована, чтобы изменять адрес нагрузки для образа Win32, который уменьшает необходимое время нагрузки для DLL.

BOOL ReBaseImage(

В LPSTR CurrentImageName, В LPSTR SymbolPath, В BOOL fReBase, В BOOL fRebaseSysfileOk, В BOOL fGoingDown, В DWORD CheckImageSize, LPDWORD OldImageSize, LPDWORD OldImageBase, LPDWORD NewImageSize, В LPDWORD NewImageBase, В DWORD TimeStamp
);


Параметры

CurrentImageName

filename, Который rebased.

SymbolPath

Путь должен найти соответствующий символьный файл.

fReBase

Образ rebased если эта величина является ИСТИНОЙ.

fRebaseSysfileOk

Системные образы могут rebased только если эта величина является ИСТИНОЙ. Системный образ - тот который имеет предпочтительный адрес нагрузки 0x80000000 или больше.

fGoingDown

Если образ должен rebased ниже данной базы, эта величина является ИСТИНОЙ.

CheckImageSize

Максимальный размер, что образ может возрасти в, или нуль если нет предела.

OldImageSize

Оригинальный размер образа перед rebase действие.

OldImageBase

Оригинальная база образа перед rebase действие.

NewImageSize

Новый размер образа после rebase действие.

NewImageBase

Новая база образа после rebase действие.

TimeStamp

Новая марка времени для образа. Используйте время прогона C (ВИДЕО) функциональное время, чтобы извлекать величину марки совместимого времени. Величина должна быть представлена в ряде секунд пройденных с полуночи (00:00:00), 1 Январь, 1970, Универсальное Согласованное Время, согласно системным часам.



Обратные Величины

Если функция добивается успеха, обратная величина является ИСТИНОЙ.
Если функция терпит неудачу, тогда обратная величина ЛОЖНАЯ. Для того, чтобы извлекать расширенную информацию ошибки, назовите GetLastError.

Замечания

Функция ReBaseImage изменяет желаемый адрес загрузки для образа Win32. Эта операция включает читая целый образ и обновление вся fixups, отладочная информация, контрольная сумма, и величины марки времени. Цель этой функции в том, чтобы уменьшить необходимое время загрузки для DLLs. Если приложение может довериться на DLL загруженное по желаемому адресу загрузки, тогда системный загрузчик нет должен переместить образ. Образ просто загружен в прикладное виртуальное пространство адреса и программа инициализации DLL's названа, если один присутствует.

Хорошо работающее приложение rebased все DLLs так они каждый находятся в пределах уникального дипазона виртуального пространства адреса. Микрософт публикует дипазон адреса, который приложения должны использоваться для их DLLs. Используя этот дипазон адреса, функция ReBaseImage, и список приложения DLLs, каждый DLLs может быть назначено уникальный базовый адрес. Этот процесс может быть частью формировать процесс или часть конечной процедуры версии для приложения.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz