BoundsChecker (из DriverStudio) странно ругается на KeReadSemaphore

Тема в разделе "WASM.NT.KERNEL", создана пользователем vlaman, 1 июн 2007.

  1. vlaman

    vlaman New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2004
    Сообщения:
    49
    хай всем
    такой вопросец

    в драйвере через ExAllocatePool выделяю NonPaged блок памяти для семафора.
    ну и затем работаю с ним.

    прогнал драйвер через boundschecker из driverstudio, и обнаружил в логе множество таких вот строк:

    0x1fc KeInitializeSemaphore( PKSEMAPHORE 0x81c78fe0, LONG 0xa3a3a3a3, LONG 0x1 ) IRQL:0
    0x1fd ERROR: Error at F78ED7FC, PKSEMAPHORE Semaphore:81C78FE0. Address is not locked or writeable.
    0x1fe KeInitializeSemaphore() return VOID:0x0

    во первых память под семафор выделена из NonPaged пула. почему он тогда такое пишет? во вторых я проверил - второй параметр KeInitializeSemaphore равен 1, а не 0xa3a3a3a3.

    ну и такое например, из той же оперы:

    0xd11 ExFreePool( PVOID 0xfe08d000 ) IRQL:2
    0xd12 ERROR: Error at F78D37C4, PVOID P:FE08D000. Address is not locked.
    0xd13 ExFreePool() return VOID:0x0

    тут адрес находится в стеке, драйвер весь целиком не выгружаем.

    ну и на KeReadSemaphore ругается теми же словами.

    я в чём то действительно не прав, или это глюки чекера?