Проблема с вызовом NtQueryObject

Тема в разделе "WASM.WIN32", создана пользователем YMP, 29 ноя 2005.

  1. YMP

    YMP New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2005
    Сообщения:
    8
    Адрес:
    Belarus
    Делаю следующее. Перечисляю все хэндлы в Windows. Затем для каждого хэндла делую следующее. OpenProcess(PROCESS_DUP_HANDLE, TRUE, handle);NtDuplicateObject(h_process, handle, (HANDLE)0xffffffff, &h_new, 0,TRUE, 0xfffffffe); NtQueryObject (h_new, 1, 0, 0, &num_bytes);

    Проблема в следующем если num_bytes == 0, то при вызове NtQueryObject (h_new, 1, buff, 0x10000, &num_bytes); мой процесс в некоторых случаях повисает и его никак не возможно снять.

    Вопрос: есть ли функция-аналог NtQueryObject в которую передается какойнибуть h_event и т.д., а управление возвращалось бы вызывающему патоку? Мот есть другие способы узнать имя объекта?
     
  2. ExeDel

    ExeDel New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    6
    Адрес:
    My litle world
    Это смотря какой Object и смотря какие цели - с уровня ядра или user-mode.



    Задача какая ?

    Скажем для станции и декстопа это GetUserObjectInformation.



    Кстати, в твоём методе может быть проблема с пайпами (синронизироваными).



    Так что детальней.
     
  3. Ms Rem

    Ms Rem New Member

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

    NtQueryObject подвисает обычно на занятых файлах либо на именованых каналах которые находятся в ожидании сообщения. Причина этого - ошибки в самом ядре системы.

    Один из вариантов решения проблемы - запуск NtQueryObject в отдельном потоке который прибивается по таймауту.
     
  4. YMP

    YMP New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2005
    Сообщения:
    8
    Адрес:
    Belarus
    Я проверяю тип объекта и работаю только с файлами. Создавать поток пробавал, работает слишком медленно. Приходится запускать около 15000 потоков. Мот есть ф-ция для запроса имени файла в которую передаеться Event?
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
  6. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Сам недавно с этим парился. Пришлось писать драйвер по типу как у Руссиновича в Procexp.