A>Из службы, запускаемой под LocalSystem делаю:
A>1. OpenInputDesktop(0, FALSE, DESKTOP_READOBJECTS);
A>2. GetUserObjectInformation(..., UOI_USER_SID, ...)
A>Служба определена как интерактивная, только вот OpenInputDesctop(...) возвращает NULL, описание ошибки "Incorrect function".
A>В чем может быть проблема?
A>Может есть другой способ получить SID текущего пользователя (обязательно залогиненого)?
Непосредственно с OpenInputDesktop не выйдет. Используйте поиск — вопрос поднимался и были приведены решения. Вкратце — находим в текущей интерактивной оконной станции\десктопе процесс с характерным названием (например, explorer.exe) и пользуем его SID. Кстати, только что подумал, что можно GetDesktopWindow, GetWindowThreadProcessId, OpenProcess — а дальше сами знаете. Естественно, для этого сервис должен либо быть интерактивным, либо его надо интерактивизировать на время

Как — тоже в поиске.