Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать открыто ли было устройство?


Serega41 ©   (2007-03-19 19:08:00) 

Скажите, как узнать, что устройство было открыто с помощью CreateFile, скажем, в другом процессе.
Т.е. вызываю я в одном процессе нечто подобное:

CreateFile('\\.\GpdDev', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);

Как мне узнать в другом процессе, что GpdDev уже открыт?


SLoW.AlfaMoon.Com   (2007-03-23 09:12:00) [1]

Да, Таким макаром просядешь на синхронном пайпе, NtQueryInformationFile надобыть сперва :)согласен. Но кто мешает проверить сначала тип объекта?


Rouse_   (2007-03-22 17:46:00) [2]


> ZwQueryObject(ObjectNameInformation,...)

Таким макаром просядешь на синхронном пайпе, NtQueryInformationFile надобыть сперва :)


SLoW.AlfaMoon.Com   (2007-03-22 17:38:00) [3]

Перечислять все хэндлы, искать среди них хэндлы с этим именем.
ZwQuerySystemInformation(SystemHandleInformation,...) && ZwQueryObject(ObjectNameInformation,...)


Serega41   (2007-03-20 13:57:00) [4]

Тем не менее открывается как пить дать)
Похоже придется драйвер править (


Чапаев   (2007-03-20 08:06:00) [5]

Попробовать открыть в другом процессе? Ты же открываешь (в приведенном примере) для эксклюзивного доступа, Больше никто открыть не сможет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо