Hi,
Introduction:
********************
I have written a FSFD based on the sFilter sample, this filter doesn’t start during the boot sequence, rather, it is being started by a user application using CreateService and friends.
On WinXP I use ‘IoRegisterFsRegistrationChange’ to attach to all of the mounted FS & Volumes, on Win2K ‘IoRegisterFsRegistrationChange’ will NOT enumerate devices that were already mounted, rather, it will indicate new devices being mounted.
To enable manual enumeration of all of the ‘drives’ on Win2K I have implemented the following:
for each drive ( from ‘A’ to ‘Z’ )
{
-
Open the root directory of that drive using ‘ZwCreateFile’.
-
Get the fileObject related with the root directory using ‘ObReferenceObjectByHandle’.
-
Get the related file system device using ‘IoGetRelatedDeviceObject’.
-
Attach to the device stack.
}
The Problem:
********************
On Win2K, when starting with a mounted CD everything works fine, all of the CD IO is being reported, BUT, when ejecting the CD and re-inserting it I get no more notifications from that CD… Why does this happen? should I hook to the \FileSystem\FatCdromRecognizer so I will get MOUNT notifications? OR, should I rather hook to \Cdfs…
Aparently, the callback registered with ‘IoRegisterFsRegistrationChange’ isn’t being called upon CD insertion / ejection…
How can I support filtering a re-mounted CD on Win2K ?
How can I get CD mount indications on Win2K ?
Any help would be appreciated…
Nadav.
Yahoo! for Good
Click here to donate to the Hurricane Katrina relief effort.