DeviceObject param to IoCreateStreamFileObjectLite?

Can anyone tell me exactly what the DeviceObject param to
IoCreateStreamFileObjectLite does? In the IFS kit docs, it says:

“A stream file object is commonly used to represent an internal stream for a
volume mounted by the file system. This virtual volume file permits the file
system to view, change, and cache the volume’s on-disk structure as if it
were an ordinary file. In this case, the DeviceObject parameter in the call
to IoCreateStreamFileObjectLite specifies the volume device object (VDO) for
the volume.”

I understand what this means, but how exactly is the DeviceObject parameter
used in dealing with the FileObject later on? In a filter, what effect does
giving the filter volume device object have?


The function stores the parameter into FileObject->DeviceObject
field (with incrementing the reference count in the device object).