использование PELDR_AddExportTable

Тема в разделе "WASM.WIN32", создана пользователем Llirik, 18 фев 2009.

  1. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Здравствуйте. Не могли бы вы дать краткое описание на русском и небольшой пример на ассемблере функции PELDR_AddExportTable?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    http://www.osronline.com/ddkx/w98ddk/kernel_4c6q.htm
     
  3. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Дак проблема-то в том, что я не знаю английского языка! а то бы уж сам во всём разобрался.
     
  4. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    В общем то можешь попробовать это почитать, но не уверен что это ответ на твой вопрос, да и с кодом не помогу потому как не работал с этой функцией...


    _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.
     
  5. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Vic, Огромное Вам спасибо!! Осталось только теперь понять как всё это выглядит на ассемблере))) а то я С не изучал)) Ладно, может теперь сам разберусь)
     
  6. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Извините, но я не могу никакой информации по созданию самих экспортных таблиц VxD(
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    а в чем проблема? если ты знаешь, как выглядит таблица, в чем проблема создать ее руками?
     
  8. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Так в том-то и проблема, что я не знаю как она выглядить и как ее создать. В учебниках, которые я смог найти, говорится "Мы не будем касаться темы экспорта vxd"(
     
  9. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    я извиняюсь, недосмотрел, вопрос был для драйверов? таблицы экспорта драйверов отличаются от ринг3 (в образовательных целях спрашиваю)?
     
  10. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Думаю, что различаются таблицы экспортов VxD и WDM. У WDM обычная, а информацию по Vxd я просто найти не могу( Там что-то связанное с секцей DDB