Получить ИД процесса, вызываюшего функцию

Тема в разделе "WASM.NT.KERNEL", создана пользователем n2, 17 дек 2011.

Статус темы:
Закрыта.
  1. n2

    n2 New Member

    Публикаций:
    0
    Регистрация:
    5 авг 2011
    Сообщения:
    26
    Делаю так:
    Код (Text):
    1. PEPROCESS *callprocess;
    2.         ULONG CallId;
    3.         callprocess=PsGetCurrentProcess;
    4.         CallId=(ULONG)PsGetProcessId(callprocess);
    Вместо ИД процесса, судя по всему, получаю адрес. Что не так?
     
  2. n2

    n2 New Member

    Публикаций:
    0
    Регистрация:
    5 авг 2011
    Сообщения:
    26
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff559940%28v=vs.85%29.aspx
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff559933%28v=vs.85%29.aspx
     
  3. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Две грубейшие ошибки:

    Звёздочка (*) здесь не нужна, т.к. PEPROCESS это уже адресный тип (об этом говорит префикс P).

    Без скобок после имени функции данная конструкция не приводит к вызову, она тупо записывает адрес функции в переменную.
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    [modnote=x64]Тему закрываю, автору необходимо подучить язык C перед тем, как писать драйвера.[/modnote]
     
Статус темы:
Закрыта.