В общем снова вопрос никак не могу понять, в AddDevice передается PDO. Можно вызвать iogetdeviceinterfaces с гуидом и получить интерфейсы на это пдо, но мне нужен пдо другово драйвера, у этого драйвера есть девайсы и у них интерфесы, тоесть симлинк с гуидом выходить. Драйвер получаю как ObReferenceObjectByName, дальше перечесляю девайсы DeviceObject, NextDevice, как теперь у девайсы узнать его симлинк ?
Попробуй IoGetDeviceProperty() с кодом DevicePropertyPhysicalDeviceObjectName. Это не линк, конечно, но возможно тоже подойдёт.
Огромное спасибо. Я уже честно говоря запарился уже делал что то типа такого Код (Text): PdoObject = PhysicalDeviceObject->NextDevice; while( PdoObject ) { if( PdoObject->AttachedDevice && PdoObject->AttachedDevice->DeviceType==FILE_DEVICE_... ) { if( PdoObject->AttachedDevice->DriverObject->DriverName.Length && !_wcsicmp(PdoObject->AttachedDevice->DriverObject->DriverName.Buffer,Driver.Buffer) ) { status = IoGetDeviceInterfaces(&GUID_DEVCLASS_...,PdoObject,DEVICE_INTERFACE_INCLUDE_NONACTIVE,&SymbolicLinks); break; } } PdoObject = PdoObject->NextDevice; } То что нужно thx
>как теперь у девайсы узнать его симлинк ? В каталоге "GLOBAL??" (см. WinObjEx.exe by Four-F) объектов Windows сидят все SymbolicLink'и... ну вот, читайте Шрайбера о том как забраться в этот каталог! Удачи! Вот как-то так!!!