Существует ли WQL-запрос для уведомления о событиях, который можно использовать для отслеживания событий в указанные секунды после времени
Я пытаюсь зарегистрировать события журнала в системе с помощью WMI на C++. Изначально мой код извлекает все журналы, которые были зарегистрированы до этого момента времени, используя следующий код.ДРУГАЯ ЛОГИКА РАБОТАЛА, СЕЙЧАС СПЕЦИАЛЬНО НУЖНО РЕШЕНИЕ В ФОРМИРОВАНИИ ЗАПРОСА
IEnumWbemClassObject* pEnumerator = NULL ;
hr = pSvc->ExecQuery (
bstr_t("WQL"),
bstr_t("Select * from Win32_NTLogEvent"),
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);
После того, как я извлекаю все журналы, которые зарегистрированы до экземпляра времени, и сохраняю их, я назначаю временного потребителя, который отслеживает создание любого события журнала, которое регистрируется после этого времени. Я использую следующий код для него
IEnumWbemClassObject* pEnumerator = NULL ;
hr = pSvc->ExecNotificationQuery (
bstr_t("WQL"),
bstr_t("select * from __InstanceCreationEvent where TargetInstance ISA 'Win32_NTLogEvent'"),
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);
Теперь моя проблема заключается в том, что я могу пропустить события журнала, которые произошли между этими двумя процессами. У меня есть детали времени, до которых получение выполняется в первом процессе (т. Е. Метод ExecQuery). Теперь я могу решить свою проблему, если я возможность изменить запрос второго процесса (т. е. метод ExecNotificationQuery), чтобы запустить мониторинг со времени, когда первый процесс осуществил свой последний поиск. Есть ли такие возможности и как это можно сделать. Спасибо заранее.