Смысл вот в чем: Сделал я фильтр и он приаттачивается к последнему фильтру и в функции NTSTATUS DriverDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp) всего-то делает IoSkipCurrentIrpStackLocation(Irp); if (skip_flag) { return IoCallDriver(root_device, Irp); } else { return IoCallDriver(next, Irp); } root_device -- это девайс самого KeyboardClass0; next -- это девайс следующего за мной фильтра; skip_flag == TRUE, когда активно приложение в котором я не хочу чтобы работали оастальные фильтры Т.е. мой фильтр отрубает все остальные фильтры! Но нашелся один (пока один) фильтр с которым глючит сей механизм. (Одна нужная утилитка ставит сей фильтр для благих намерений) Глюк состоит в следующем: при быстром наборе с клавы в целевом приложении половина клавиш как бы не доходят до приложения, а когда переходиш в другое приложение, то при следующим нажатии на клавишу все недошедшие появляются одним разом. И еще одна особенность: при работе через "return IoCallDriver(next, Irp);" через ф-цию DriverDispatch проходит по два Irp на каждое нажатие клавиши (я так понимаю что по одному Irp на нажатие и отжатие), но при работе через "return IoCallDriver(root_device, Irp);" проходит только одно Irp. В чем дело? Мот кто встречался с подобным или идеи есть?