Как работает GetModuleHandle ()?

Я читаю он описывает API GetModuleHandle () следующим образом:

Когда вы вызываете эту функцию, вы передаете строку с завершающим нулем, которая определяет имя исполняемого файла или файла DLL, загруженного в адресное пространство вызывающего процесса. Если система находит указанное имя исполняемого файла или DLL , GetModuleHandle возвращает базовый адрес, по которому загружается этот исполняемый файл или образ файла DLL.

Мне интересно , где система ищет файл имя файла ? Когда я загружаю какой-либо файл в свое адресное пространство процесса, существует ли какая-то централизованная таблица для хранения сопоставления имен всех загруженных файлов и их адресов загрузки? Если мы ищем на основе совпадения строк, это какая-то низкая эффективность?

Большое спасибо за ваши идеи.

7
задан smwikipedia 12 November 2010 в 00:39
поделиться