Who and why is changing devobj->StackSize after mount?

Hi everyone.

I have noticed that my file system device object’s StackSize field is
changing somewhere between
IRP MOUNT completion and the first IRP CREATE that comes to this device.
When I create my
FS device I set StackSize to 4. After MOUNT the StackSize is turned back to
2 (which is volume
device’s StackSize+1). Who and why does this? I understand, that quick fix
will be to set my volume
device’s StackSize to 3, but just out of the curiosity…
Is it because I/O Mgr “thinks” that between FS device creation (within
mount) and actual mount, when
those two are tied up, a filter can be attached to the volume device and FS
may save for itself a wrong stack size?

TIA,

Vladimir