IoInvalidateDeviceRelations

Hi,
I wrote Bus Filter which is an upper filter to the scsi controller
and catch the controller child PDOs and hook them.
I want to controll the existance and non existance of disks in my system.
so I thought the best way to do it is to play with the BusRelations by
calling IoInvalidateDeviceRelations.
I have IOCTL that should turn the scsi disks off and on.
when I call the IOCTL I call IoInvalidateDeviceRelations for BusRelations,
then in the DispatchPnP I handle IRP_MN_QUERY_DEVICE_RELATIONS
the first time using a boolean flag if its false I return 0 in the
relation->Count variable and when its true I return the relations I got
from the controller.
the first time I handle the IRP_MN_QUERY_DEVICE_RELATIONS and return 0 all
the disks disappears the problem is to bring them back on.
at the second time I call the IOCTL I handle IRP_MN_QUERY_DEVICE_RELATIONS
and this time I return the relations, but nothing is happend.

can you give me some insight about this problem is there any Idea of what
I’m doing wrong?

Omri