Определить устройство по названию тома

Тема в разделе "WASM.NT.KERNEL", создана пользователем prus, 23 фев 2008.

  1. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    Приветствую!
    Можно ли как-то определить устройство (флэшка или еще что-то) по названию тома (C:, G: и тп) в ядре?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Что ты хочеш узнать об устройстве ?
     
  3. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    Clerk
    1. Что за носитель: cd-rom, dvd, netfs, флэшка и тд
    2. Название (не гуид, а что-то типа "Съемное устройство")
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    NtQueryInformationProcess(InfoClass=ProcessDeviceMap)
     
  5. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    Clerk
    Спасиб, попробую.
     
  6. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    Clerk
    Попробовал...
    Почему-то возвращает STATUS_ACCESS_VIOLATION. В чем причина? Код такой:
    Код (Text):
    1. PROCESS_DEVICEMAP_INFORMATION DeviceMap;
    2.  
    3. ntStatus = NtQueryInformationProcess(NtCurrentProcess(),
    4.                         ProcessDeviceMap,
    5.                         &DeviceMap.Query,
    6.                         sizeof(DeviceMap.Query),
    7.                         NULL);
     
  7. nxbit159

    nxbit159 AntiEXE

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    13
    Поинтер надо на сам девайс мап и размер структуры девайсмап.
     
  8. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    nxbit159
    Это где?
     
  9. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    Через Zw функцию работает.
    Код (Text):
    1. PROCESS_DEVICEMAP_INFORMATION DeviceMap;
    2.  
    3. ntStatus = ZwQueryInformationProcess(NtCurrentProcess(),
    4.                         ProcessDeviceMap,
    5.                         &DeviceMap,
    6.                         sizeof(DeviceMap),
    7.                         NULL);
    А где можно посмотреть определения типов устройств, которые в массив DeviceMap.Query.DriveType передаются?
     
  10. prus

    prus New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2007
    Сообщения:
    92
    Всем спасибо!
    Вопрос закрыт.