iogetdeviceinterfaces

Тема в разделе "WASM.NT.KERNEL", создана пользователем 365, 2 ноя 2011.

  1. 365

    365 New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2010
    Сообщения:
    36
    В общем снова вопрос никак не могу понять, в AddDevice передается PDO.
    Можно вызвать iogetdeviceinterfaces с гуидом и получить интерфейсы на это пдо, но мне нужен пдо другово драйвера, у этого драйвера есть девайсы и у них интерфесы, тоесть симлинк с гуидом выходить.

    Драйвер получаю как ObReferenceObjectByName, дальше перечесляю девайсы DeviceObject, NextDevice, как теперь у девайсы узнать его симлинк ?
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Попробуй IoGetDeviceProperty() с кодом DevicePropertyPhysicalDeviceObjectName. Это не линк, конечно, но возможно тоже подойдёт.
     
  3. 365

    365 New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2010
    Сообщения:
    36
    мимо первый параметр функи должен быть PDO, а его я еще не знаю, так как имею только DO
     
  4. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
  5. 365

    365 New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2010
    Сообщения:
    36
    Огромное спасибо. Я уже честно говоря запарился уже делал что то типа такого
    Код (Text):
    1. PdoObject = PhysicalDeviceObject->NextDevice;
    2.         while( PdoObject )
    3.         {
    4.             if( PdoObject->AttachedDevice && PdoObject->AttachedDevice->DeviceType==FILE_DEVICE_... )
    5.             {
    6.                 if( PdoObject->AttachedDevice->DriverObject->DriverName.Length && !_wcsicmp(PdoObject->AttachedDevice->DriverObject->DriverName.Buffer,Driver.Buffer) )
    7.                 {
    8.                     status = IoGetDeviceInterfaces(&GUID_DEVCLASS_...,PdoObject,DEVICE_INTERFACE_INCLUDE_NONACTIVE,&SymbolicLinks);
    9.                     break;
    10.                 }
    11.             }
    12.  
    13.             PdoObject = PdoObject->NextDevice;
    14.         }
    То что нужно thx
     
  6. int2eh

    int2eh Alexander Leevy

    Публикаций:
    0
    Регистрация:
    19 авг 2007
    Сообщения:
    106
    Адрес:
    Москва
    >как теперь у девайсы узнать его симлинк ?

    В каталоге "GLOBAL??" (см. WinObjEx.exe by Four-F) объектов Windows сидят все SymbolicLink'и... :) ну вот, читайте Шрайбера о том как забраться в этот каталог! Удачи! Вот как-то так!!!
     
  7. 365

    365 New Member

    Публикаций:
    0
    Регистрация:
    20 авг 2010
    Сообщения:
    36
    IoGetDeviceInterfaces
     
  8. int2eh

    int2eh Alexander Leevy

    Публикаций:
    0
    Регистрация:
    19 авг 2007
    Сообщения:
    106
    Адрес:
    Москва
    365
    +100 Точно!