Я разрабатываю простой драйвер для уведомления о создании процесса в пользовательском режиме! Я искал найденный хороший пример, но это только результат шоу в «dbgView»!Faild on get ImageFileName form PsSetCreateProcessNotifyRoutineEx
Моя проблема заключается в получении и отправке: ImageFileName
и CommandLine
от PPS_CREATE_NOTIFY_INFO CreateInfo
.
Это мой код в стороне CreateProcessNotifyEx
обратного вызова:
VOID CreateProcessNotifyEx(
__inout PEPROCESS Process,
__in HANDLE ProcessId,
__in_opt PPS_CREATE_NOTIFY_INFO CreateInfo
)
{ ...
Pinfo->ParentId = CreateInfo->ParentProcessId;
Pinfo->ProcessId = ProcessId;
Pinfo->Create = CreateInfo->CreationStatus;
Pinfo->ImageFileName= CreateInfo->ImageFileName;
Pinfo->CommandLine= CreateInfo->CommandLine;
..
KeSetEvent(ProcessEvent, 0, FALSE);
KeClearEvent(ProcessEvent);
....}
Этот код работать отлично, и я получил [б] Pinfo [/ b] структура в пользовательском режиме, но Pinfo->ImageFileName
и Pinfo->CommandLine
не содержит любая строка! (Pinfo-> ProcessId и Pinfo-> Создать заполнение по достоверным данным)
Где моя ошибка?
{Оооо Извините, что я, если мой английский плохо}
В соответствии с документацией этого API эта информация может быть недоступна через этот api. – Rohan
@Rohan Нет. Я уверен, что эта информация доступна, потому что при использовании 'dbgprint ("% ws ", CreateInfo-> ImageFileName)'. Напишите значение 'CreateInfo-> ImageFileName' в * DebugView *. – Kamran