Необходимо получить список невыгружаемых драйверов, для чего требуется перечислить DRIVER/DEVICE_OBJECT загруженных драйверов В описании структур (ntddk.inc) есть фрагмент: DEVICE_OBJECT struct ...... db 3 dup(?); padding UNION Queue ListEntry LIST_ENTRY <> ; 0034h Wcb WAIT_CONTEXT_BLOCK <> ; 0034h ENDS ; Queue ... DEVICE_OBJECT ends однако на практике никаким ListEntry там не пахнет: проверил в SoftIce для нескольких драйверов увидел только нули. Надеюсь на вашу поддержку.
LdrDataTableEntry = (PLDR_DATA_TABLE_ENTRY) DriverObject-> DriverSection || http://www.rootkit.com/newsread.php?newsid=209
перечисляешь DRIVER_OBJECT из \Driver, а у них смотришь DriverObject->DeviceObject->NextDevice->NextDevice->NextDevoce..
Great Поле NextDevice заполняется не для всех устройств. Подозреваю, что указывает оно на следующее устройство в стеке nester7 Будем разбираться
атнюдь, стек составляется из указателей AttachedDevice и DevObjExtension->AttachedTo. а поле NextDevice конечно не для всех заполняется - AFAIR, оно указывает на следующий девайс, созданный данным драйвером. то есть тебе как раз катит - перечисляешь все драйвера, а потом по этому полю перечисляешь все девайсы для конкретного драйвера.