Я хотел бы создать события для определенных ресурсов, которые используются различными процессами, и получить доступ к этим событиям по имени. Кажется, проблема в том, что имена событий должны быть известны всем приложениям, ссылающимся на них.
Возможно, есть способ получить список имен событий в системе?
Мне известно, что я мог бы использовать некоторые стандартные имена, но это кажется довольно негибким в отношении будущей расширяемости (для всех приложений потребуется перекомпиляция).
Боюсь, я даже не могу рассмотреть ZwOpenDirectoryObject, потому что он описан как нуждающийся в Windows XP или выше, поэтому об этом не может быть и речи. Спасибо за предложение, хотя.
Я немного не уверен насчет общей памяти, потому что я еще не пробовал. Думаю, можно почитать в этой области. Файлы конфигурации и реестр - небольшая проблема, потому что они имеют тенденцию терпеть неудачу с Vista из-за проблем с доступом. Я немного боюсь, что общая память будет иметь ту же проблему.
Идея с ProcessExplorer звучит многообещающе. Кто-нибудь знает API, который можно использовать для перечисления событий для процесса? И работает ли он без административных прав?
Спасибо за разъяснения.
На самом деле нет мастер-процесса. Это больше dll драйвера, который используется из разных процессов, и события будут использоваться для "блокировки" ресурсов, используемых этими процессами.
Я думаю о настройке центральной службы, которая имеет достаточные права доступа даже под Vista. Это, безусловно, усложнит ситуацию, но, возможно, это единственное, что останется перед проблемами безопасности.