Проблема с KeWaitForMultipleObjects

Тема в разделе "WASM.NT.KERNEL", создана пользователем Crash, 3 ноя 2006.

  1. Crash

    Crash New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2004
    Сообщения:
    73
    Привет всем!

    У меня при вызове KeWaitForMultipleObjects в DriverUnload (при выгрузке драйвера)
    следующим образом падает система (BSOD) с ошибкой MAXIMUM_WAIT_OBJECTS_EXCEEDED (0xC).

    KeWaitForMultipleObjects(EVENT_COUNT, (PVOID*)events, WaitAll, Executive, KernelMode, FALSE, NULL, NULL);

    EVENT_COUNT при этом равен 2.

    events объявляю так:
    KEVENT *events[EVENT_COUNT];

    инициализирую в так:
    for (int i = 0; i < EVENT_COUNT; i++) {
    events = (KEVENT*)ExAllocatePool(NonPagedPool, sizeof(KEVENT));
    if (events) {
    KeInitializeEvent(events, NotificationEvent, TRUE);
    }
    }

    Кто-нибудь знает, почему так происходит?
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Попробуй создать вспомогательный буфер, как написано в DDK. Он вроде бы должен существовать для трех событий, но там кто его знает