Development and Testing Tools
Several filter manager tools are available for use. Minifilter driver developers are also encouraged to use general-purpose kernel-mode development and testing tools, such as PREfast with driver-specific rules.
The Fltmc.exe program is a system-supplied command line utility for common minifilter driver management operations. Developers can use Fltmc.exe to load and unload minifilter drivers, attach or detach minifilter drivers from volumes, and enumerate minifilter drivers, instances, and volumes. In a command prompt with administrator privileges, type
fltmc help to see the full list of commands.
The Fsutil.exe program is a system-supplied command line utility that performs various operations on files. Developers can type
fsutil file layout foo.md to pretty-print all the details of a file, such as its attributes, time stamps, streams, and so forth.
!fltkd Debugger Extension
The !fltkd debugger extension is provided in the Windows Debugging tools. Commonly used commands include the following:
|!cbd||The filter manager equivalent of !irp|
|!filter||Lists detailed information about the specified filter|
|!filters||Lists all attached minifilter drivers|
|!frames||Lists all filter manager frames and attached minifilter drivers|
|!instance||Lists detailed information about the specified instance|
|!volume||Lists detailed information about the specified volume|
|!volumes||Lists all volumes and attached minifilter driver instances|
In WinDbg, type !fltkd.help for a full list of commands.
Filter Verifier is an I/O Verification option in Driver Verifier that validates minifilter driver usage of filter manager functions. Filter Verifier is installed with the filter manager. Developers should always develop minifilter drivers with Driver Verifier and Filter Verifier enabled.
To use Filter Verifier, specify the minifilter driver's name and enable the I/O Verification option in Driver Verifier (Verifier.exe). Verification starts when the minifilter driver registers with the filter manager.
Filter Verifier validates the following usage in a minifilter driver:
- Correct use of parameters and calling context
- Correct return values from preoperation and postoperation callback routines
- Consistent and coherent changes to parameters in callback data
Filter Verifier tracks the following filter manager objects:
- Callback Data structures
- Queued Work Items
- NameInformation structures
- File Objects
- Filter Objects
- Instance Objects
- Volume Objects
In a command prompt, type
verifier /? to see syntax and a full list of parameters.