Здравствуйте! Возникла такая проблема - написал драйвер-фильтр на ком-порт, который цепляет FiDO в стек устройств \Device\Serial*. Перехват данных, отправленных на ком-порт напрямую работает без замечаний. Но данные, поступающие от устройств, подключенных к ком-порту, (например мышь) не перехватывается. Смотрю в чем проблема: Код (Text): !drvobj serenum Driver object (820932d8) is for: \Driver\serenum Driver Extension List: (id , addr) Device Object list: 8249c5d0 824dbb58 824a1680 !devstack 8249c5d0 !DevObj !DrvObj !DevExt ObjectName 822cae48 \Driver\Mouclass 822caf00 PointerClass4 822c8b60 \Driver\sermouse 822c8c18 > 8249c5d0 \Driver\serenum 8249c688 0000007e !DevNode 81f1e8b0 : DeviceInst is "SERENUM\ECM0001\6&23de782&0&0000" ServiceName is "sermouse" !devstack 824dbb58 !DevObj !DrvObj !DevExt ObjectName 822f7ea8 \Driver\ComFltr 822f7f60 > 824dbb58 \Driver\serenum 824dbc10 8222f8c0 \Driver\Serial 8222f978 Serial1 824ec748 \Driver\ACPI 82599348 00000072 !DevNode 824ec2a8 : DeviceInst is "ACPI\PNP0501\2" ServiceName is "Serial" !devstack 824a1680 !DevObj !DrvObj !DevExt ObjectName 821f3810 \Driver\ComFltr 821f38c8 > 824a1680 \Driver\serenum 824a1738 820938c0 \Driver\Serial 82093978 Serial0 824ec860 \Driver\ACPI 82599500 00000071 !DevNode 824ec3c8 : DeviceInst is "ACPI\PNP0501\1" ServiceName is "Serial" То есть получается, что для мыши serenum создает отдельное FDO со своим стеком. Теперь вопрос, есть ли возможность как-то отлавливать момент создания нового объекта устройства serenum и вставлять свой фильтр между ним и новым СОМ устройством?
Уже разобрался. Открываю объект драйвера "Driver\serenum" с помощью функции ObReferenceObjectByName, потом просто перечисляю все созданные им устройства через DeviceObject и NextDevice.