![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать открыто ли было устройство?
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]Попробовать открыть в другом процессе? Ты же открываешь (в приведенном примере) для эксклюзивного доступа, Больше никто открыть не сможет.