я получил 100 ошибок при включении ntddk.h и wdm.h в мою программу - PullRequest
0 голосов
/ 21 сентября 2019

введите описание ссылки здесь [2] [это изображение показывает ошибку] ​​Я пробовал этот код для блокировки процесса перед выполнением. Но я получил 100 ошибок при импорте ntddk.h и wdm.hв с ++. Как это решить?Затем я понял, что в моих 14 и 22 строках кода ожидается символ «)».Итак, что я должен сделать для удаления ошибки 100?

#include <ntstatus.h>
#include<DbgEng.h>
#include<Windows.h>
#include <ntddk.h>
#include <wdm.h>

int main()
{
    PEPROCESS process1;
    process1 = IoGetCurrentProcess();
    HANDLE ProcessId = PsGetCurrentProcessId();
    PS_CREATE_NOTIFY_INFO CreateInfo;
    PCREATE_PROCESS_NOTIFY_ROUTINE_EX(process1, ProcessId, CreateInfo);
    PCUNICODE_STRING ImageFileName;
    NTSTATUS  CreationStatus;
    CreateInfo.CreationStatus = STATUS_ACCESS_DENIED;
    ImageFileName = CreateInfo.ImageFileName;
    if (ImageFileName == (PCUNICODE_STRING)L"firefox.exe")
    {
        NTSTATUS result;
        result = PsSetCreateProcessNotifyRoutineEx(PCREATE_PROCESS_NOTIFY_ROUTINE_EX(process1, ProcessId, CreateInfo), FALSE);
        if (result)
        {
            printf("blocked");
        }
    }
    return 0;
}

Затем я получил сообщение об ошибке "a") в моей строке кода 14 и 22.

PCREATE_PROCESS_NOTIFY_ROUTINE_EX(process1, ProcessId, CreateInfo);
result=PsSetCreateProcessNotifyRoutineEx(PCREATE_PROCESS_NOTIFY_ROUTINE_EX(process1, ProcessId, CreateInfo), FALSE);

это ссылка для отображения моей ошибки

1 Ответ

3 голосов
/ 21 сентября 2019

Не смешивайте заголовки / библиотеки SDK и DDK в одном исполняемом файле.

Если вы пишете драйвер, не включайте Windows.h.Код драйвера не является кодом Win32.

Если вы хотите создать процесс в приостановленном состоянии из другого процесса Win32, используйте CREATE_SUSPENDED флаг создания процесса в CreateProcess() (или аналогичном) вызове Win32.

Если вы хотите отказать в создании процесса для определенного процесса из драйвера, проверьте этот вопрос StackOverflow для стандартного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...