У меня есть служба Windows, работающая в фоновом режиме, и я хочу в какой-то момент сказать ему, чтобы он получал объекты из таблицы запущенных объектов.
Проблема в том, что это кажется невозможным, что бы я ни пытался.
Всегда происходит сбой в методе GetObject из API Windows, сбой с кодом 0x800401E3 (операция недоступна), как если бы объект не существовал.
TheТот же пример кода, который не работает в службе, работает нормально в обычном исполняемом файле, поэтому опечатка или логическая ошибка весьма маловероятны.
Я попытался запустить службу следующими способами:
- В локальной системной учетной записи
- В локальной учетной записи администратора
- В локальной системной учетной записи олицетворение пользователя-администратора (с помощью ImpersonateLoggedOnUser)
- Все они вышли из строя одинаково (как описано выше, для метода GetObject)
Поэтому мне интересно, есть ли ограничения, которые я не знаю в отношенииЗапуск Object Table и служб Windows (для возможных проблем с безопасностью?).
И что ж, если это сработает, чего мне не хватать?Есть ли что-то еще, кроме пользовательских привилегий, которые могут повлиять на способность моего сервиса просматривать / извлекать данные из таблицы запущенных объектов?