Здравствуйте. Не могли бы вы дать краткое описание на русском и небольшой пример на ассемблере функции PELDR_AddExportTable?
В общем то можешь попробовать это почитать, но не уверен что это ответ на твой вопрос, да и с кодом не помогу потому как не работал с этой функцией... _PELDR_AddExportTable ---------------------------------------------- include vxdldr.inc LRESULT CDECL PELDR_AddExportTable(PHPEEXPORTTABLE phExportTable, PSTR pszModuleName, ULONG cExportedFunctions, ULONG cExportedNames, ULONG ulOrdinalBase, PVOID *pExportNameList, PUSHORT pExportOrdinals, PVOID *pExportAddrs, PHLIST phList); Добавляет таблицу экспорта в список экспортируемых таблиц. Использует соглашения о вызовах принятые в С. Возвращет PELDR_ERR_NOERROR, при удачном вызове , в противном случае возвращает PELDR_ERR_MEM_NOMEMORY, что говорит о недостаточном кол-ве памяти для выполнения запроса. phExportTable - адрес HPEEXPORTTABLE по которому находиться указатель на таблицу экспорта в случае успешного завершения ф-ции. pszModuleName - адрес завершающейся нулем строки, содержащей имя модуля. например "VXDLDR.VXD" cExportedFunctions - кол-во экспортируемых функций cExportedNames - кол-во экспортируемых имен ulOrdinalBase - значение базы для таблицы ординалов pExportNameList - адрес массива указателей на завершающиеся нулем строки. этот список содержит экспортируемые имена модуля. pExportOrdinals - адрес массива ординал. этот массив должен соответствовать один к одному со списком экспортируемых имен. pExportAddrs - адрес массива экспортируемых адресов. Этот массив используется при разрешении адресов импорта. Ординал представляет собой индекс в этом массиве. phList - адрес на хэндл списка экспортируемых таблиц. Этот параметр установлен когда клиент ограничивает список таблиц экспорта. Если значение NULL используется глобальный список таблиц экспорта. Если хэндл на который указывает phList равен NULL, создается новый локальный список таблиц экспорта. Указатели и данные на которые ссылаются с помощью pszModuleName, pExportNameList, pExportOrdinals, pExportAddrs, или phList должны оставаться действительными до тех пока таблица экспорта не будет удалена с использованием _PELDR_RemoveExportTable.
Vic, Огромное Вам спасибо!! Осталось только теперь понять как всё это выглядит на ассемблере))) а то я С не изучал)) Ладно, может теперь сам разберусь)
Так в том-то и проблема, что я не знаю как она выглядить и как ее создать. В учебниках, которые я смог найти, говорится "Мы не будем касаться темы экспорта vxd"(
я извиняюсь, недосмотрел, вопрос был для драйверов? таблицы экспорта драйверов отличаются от ринг3 (в образовательных целях спрашиваю)?
Думаю, что различаются таблицы экспортов VxD и WDM. У WDM обычная, а информацию по Vxd я просто найти не могу( Там что-то связанное с секцей DDB