Это происходит потому, что объявление переменных внутри цикла for было недействительным C до C99 (что является стандартом C, опубликованным в 1999 году), вы можете либо объявить свой счетчик вне for, как указано другими, либо использовать -std = флаг c99, чтобы явно указать компилятору, что вы используете этот стандарт, и он должен интерпретировать его как таковой.
Для создания источника журнала событий вам необходимо быть администратором, иначе вы сможете писать в него без повышенных прав.
Может быть, взгляните на эту статью.
В документах MSDN по ведению журнала событий (Win32) не упоминаются какие-либо необходимые привилегии.
Тем не менее, я не уверен, что понимаю, почему вам нужно писать по адресу журнал с использованием токена олицетворения. Вы по-прежнему можете выдавать себя за другое лицо, но при необходимости записывать в журнал и другую учетную запись (администратора).