Драйвер не видит порт

Тема в разделе "WASM.NT.KERNEL", создана пользователем Velheart, 10 июл 2008.

  1. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Привет.
    Такая трабла: создаю в юзермоде порт, (пробовал в "/" и "/BaseNamedObjects") получаю STATUS_SUCCESS, winobj замечательно видит мой порт, но когда я пытаюсь законнектиться к нему из драйвера, получаю OBJECT_NAME_NOT_FOUND, я подозреваю, что дело в том, что разные пространства имен, и нужно создавать символическую ссылку, но где создавать, и как это делать в юзермоде, не совсем понятно(в смысле какие поля заполнять в OBJECT_ATTRIBUTES для ссылки) : вроде бы NtCreateSymbolicLinkObject возвращает STATUS_SUCCESS, а ссылки не видно в WinObj.. Подскажите, плз, кто знает, что делать.
     
  2. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    ну если ты создаешь объект "устройство" из юзермода (правда, я еще не знаю как это возможно, поскольку изучил пока только уроки Four-F), то думаю, что и символьную сцылку нужно создавать оттуда же. посмотри в сторону этой ф-ции, может поможет чем-нить...создает символьную сцылку:
    http://msdn.microsoft.com/en-us/library/aa363904(VS.85).aspx
     
  3. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Aspire
    Сенкс, только я создаю не девайс, а порт для LPC =), а символьную ссылку создавал через NtCreateSymbolicLinkObject из ntdll.dll, но чет она не работала, попробую, может DefineDosDevice заработает..
     
  4. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Чет у меня ничего не работает, пробовал создавать, в итоге в BaseNamedObjects\Global (хм Руссинович писал, что можно просто в \Global, но у меня пишет, что путь не найден) и все равно драйвер не видит, я так понимаю, что это потому, что я пытаюсь обратиться из системного потока, который выполняется под локальной системой(?), но вроде бы используется Global, в чем же дело? А еще, если попытаться законнектиться из создающего процесса, но только из ядра, через DeviceIoControl, то получаю STATUS_ACCESS_VIOLATION.. Подскажите, может кто-нибудь использовал LPC для общения драйвера с процессом??