Adding ReadAheadGranularity/ReadAheadGranularityEx and DirtyPageThreshold to VolumeParams
I'm building a network filesystem over QUIC targeting WAN use cases. Currently there's no way to control the Cache Manager's read-ahead granularity or dirty page threshold from user mode. ReadAheadGranularity (CcSetReadAheadGranularity) (https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ccsetreadaheadgranularity) : Allowing control over the read-ahead chunk size would benefit network filesystems by reducing the number of round trips for sequential reads over high-latency connections. ReadAheadGranularityEx would also be nice but is likely unnecessary since chunking can be controlled at the application level. DirtyPageThreshold (CcSetDirtyPageThreshold) (https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ccsetdirtypagethreshold) : Allowing control over the per-file dirty page threshold would benefit network filesystems by letting more writes accumulate before the Cache Manager applies back-pressure to the writing application. This reduces stalls during burst writes over slow connections. Both could be exposed as new fields in FSP_FSCTL_VOLUME_PARAMS with defaults matching current behavior for backward compatibility. Would be a single calls after CcInitializeCacheMap if not none
Source: winfsp/winfsp