New for Installable File System Drivers
This topic summarizes the new features and improvements for installable file system drivers in Windows 8.
- Directory Oplocks
- Data Scan Support in Filter Manager
- Named Pipe and Mailslot Support in Filter Manager
- Extra Create Parameter (ECP) Improvements
The oplock model in Windows is extended to include the creation of directory oplocks. Directory oplocks are included in the extra create parameters associated with a file object. Additionally, the following file locking and oplock support routines are new:
Support for data scanning in file system filter drivers is added in Windows 8. Using the FsRtlXxx data scan routines in filter drivers is dangerous and requires careful use of section objects. New data scan routines are added in filter manager to provide proper handling of section objects and synchronization of section read/write conflicts. The new data scan routines are the following:
Previously, creation of a legacy filter driver was necessary to filter I/O for named pipes and mailslots. Filter manager–based minifilter drivers can now attach to these file systems. Also, minifilters can create new server end points with the FltCreateNamedPipeFile and FltCreateMailslotFile routines.
Recycling of previously allocated ECPs is new in Windows 8. To avoid the overhead of freeing an ECP on file close and then allocating a new one later, a file system or file system filter driver can reuse an existing ECP. The new FsRtlPrepareToReuseEcp and FltPrepareToReuseEcp routines return an existing ECP to an initialized state.
Two new system ECP context structures are available in Windows 8. The directory oplock feature adds the DUAL_OPLOCK_KEY_ECP_CONTEXT structure for file and directory oplock keys. To improve the resume state of applications in a failover cluster, the new NETWORK_APP_INSTANCE_ECP_CONTEXT structure contains an identifier used by the secondary node to verify opened files by a client application. For an overview of these and other system ECPs, see System-Defined ECPs.
Build date: 12/17/2013