ДРАЙВЕР: Доступ к MS-DOS памяти?

Тема в разделе "WASM.WIN32", создана пользователем ABC, 31 авг 2005.

  1. ABC

    ABC New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    92
    Хотел бы узнать как из драйвера получить доступ

    к MS-DOS памяти?



    Например к сегменту 0: и смещению 04C6 в общем 0:04C6h



    Просто там много чего зарегестрированных данные остлись

    например количество HDD и м. д.



    Кто знает?
     
  2. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Под 9x -- как два пальца об асфальт, под NT -- очень и очень непросто. ;)

    Лучше получить эту информацию другими, официальными способами.
     
  3. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    добавить в дескрипторную таблицу новый элемент. или поискать который уже адресует эту память.

    лично я такого не делал но идея вроде верная.
     
  4. Skif

    Skif New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2003
    Сообщения:
    55
    Хм. В сторону MmMapIoSpace смотреть не пробовали? По крайней мере, до видеопамяти text-mode VGA добраться можно...



    Хотя, я опять-таки не понимаю, зачем для получения количества HDD (например) нужно лезть в эти дебри, если в 2k+ (и 98+) предусмотрены документированные интерфейсы (см. в сторону SetupDi* ф-ций).



    PS. Примеры - www.google.com :derisive:
     
  5. ABC

    ABC New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    92
    Skif

    Например?
     
  6. ABC

    ABC New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    92
    Skif

    А лучше пример :)
     
  7. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    ABC

    Для получения количества HDD есть функция GetLogicalDrives которая неплохо описана в MSDN. Хотя если есть желание вырезать гланды через ж..у, то можно и через порты (в драйвере) эту информацию получить (тогда гарантирую тебе кучу проблем с твоей программой).

    Или как вариант - писать программы для DOS, если под Windows все время возникает желание делать все через ж..у.
     
  8. Skif

    Skif New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2003
    Сообщения:
    55
    Ms Rem

    GetLogicalDrives, все-таки, немного из другой оперы. Для получения количества физических HDD можно либо пытаться их открывать по очереди (\\.\PhysicalDriveX) и проверять MediaType, либо использовать интерфейсы, предоставляемые Setup API (SetupDi*).



    Насчет "альтернативных" методов категорически согласен :derisive:)) "Тупой" перенос "в лоб" методик программирования из DOS в Windows ни к чему хорошему привести не может, даже теоретически.
     
  9. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"




    Тогда уж лучше перечислить с помощью ZwQueryDirectoryFile все обьекты в \DosDevices\ и выбрать среди них PhysicalDrive.
     
  10. Skif

    Skif New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2003
    Сообщения:
    55
    Где-то удобнее использовать Setup API, где-то - ZwQueryDirectoryFile, где-то тупо перебирать номера \\.\PhysicalDrive% по очереди. Можно еще что-нибудь придумать. Но из win32-приложения или драйвера лезть за этой информацией в область данных BIOS/DOS - это IMHO нонсенс.
     
  11. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    За кол-вом хдд обращайтесь к IoGetConfigurationInformation.
     
  12. ABC

    ABC New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    92
    Ms Rem

    Я это и без тебя знаю!

    Мне надо прочитать определный сегмент и смещение.
     
  13. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    ABC

    Дык читай, у меня получалось даже писать. Эффект был интересным, особенно при воздействии на сегмент текстового видеобуфера ($B800:).
     
  14. ABC

    ABC New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    92
    alpet

    Ну и как?
     
  15. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    а VDD для кого придумали ????? смотреть в DDK там примеры есть и кое какое описалово, которого в принципе достаточно. NTVDM.EXE для этого дела содержит специальный экспорт, который мне точно известно позволяет решить именно эту проблему. Ничего не понимаю, в чём загвоздка то (
     
  16. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    а в реестре что, слабо посмотреть количество подсоидиненных физических устройств ?????
     
  17. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"




    Так в реестре посмотреть - это нормальное решение, а ему обязательно надо через ж..у :))
     
  18. ABC

    ABC New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    92
    CARDINAL

    Нащет физ. дисков это ерунда! Это я так для примера...



    А вообще в памяти DOS очень много чего содержится

    интересного...



    Вот и надо получить доступ!
     
  19. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    ABC

    Получай, тебе уже достаточно четко указали где копать. По правде сказать, будь у меня такая жесткая необходимость к памяти виртуальной DOS-машины получить доступ, я бы использовал приложение реального времени. Поскольку это просто, и не имеет траблов с совместимостью различных версий Windows.



    P.S. Если ты считаешь, что этот способ хуже чем кулхацкерский прямой доступ посредством VDD, попытайся реализовать тот что лучше самостоятельно. Тогда твое мнени может положительно поменятся.
     
  20. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    ABC

    кароче, доработки закончу, будет статья по теме vdd дос ntvdm и вся прочая хренатень, пока привожу к экспортному виду другую статью для запуливания на сайт.