Download EaseFilter Filter Driver SDK With Demo Source Code Setup File Download EaseFilter Filter Driver SDK With Demo Source Code Zip File
The EaseFilter Filter Driver SDK is a collection of tools, libraries, and sample code designed to facilitate the creation of Windows file system filter drivers. These drivers operate at a low level, intercepting file I/O requests before they reach the underlying file system or other filter drivers.
The EaseFilter SDK provides a powerful interface for developing Windows filter drivers in C++, C#, or other programming languages that support native DLL calls. This guide helps developers understand how to use the SDK effectively to monitor, filter, or control file system activities in real time.
EaseFilter File Security SDK is a powerful Windows file system filter driver development kit that allows developers to monitor, control, and protect file system activities in real-time. Here’s what you can do with it:
Monitor file activities in real-time: Track who is accessing files, when, and how (read, write, delete, rename, etc.).
Control file access: Implement granular security policies to allow or deny file operations based on users, processes, file paths, or even content.
Implement transparent file encryption: Encrypt and decrypt data on-the-fly, ensuring sensitive information remains protected at rest.
Develop data loss prevention (DLP) solutions: Prevent unauthorized data exfiltration by controlling file transfers and modifications.
Build journaling and auditing tools: Maintain detailed logs of file system events for compliance and forensic analysis.
Create virtual file systems and storage tiering solutions: Manage data across different storage locations seamlessly.
Monitor and protect processes and the registry: Extend control beyond files to secure system configurations and prevent malicious software execution.
The versatility of the EaseFilter SDK opens doors to a wide range of applications:
Data Security Software: Develop DLP solutions, file encryption utilities, and access control systems for sensitive data.
File Auditing and Compliance Tools: Create applications that track every file operation for regulatory compliance and internal security audits.
Endpoint Protection Platforms: Enhance endpoint security by controlling process execution and monitoring critical system files.
Backup and Recovery Solutions: Implement Continuous Data Protection (CDP) by logging real-time file changes.
Digital Rights Management (DRM): Securely share files with embedded access policies that can be revoked at any time.
Cloud Storage Integration: Build solutions that seamlessly integrate local file systems with cloud storage, offering features like data tiering and virtual file systems.
Application Sandboxing: Create secure environments for applications by controlling their file system access.
By integrating EaseFilter SDK with artificial intelligence (AI) and machine learning (ML) models, developers can build smart security analytics tools, capable of anomaly detection, behavior-based threat detection, and automated response. This guide shows how to integrate EaseFilter SDK with Python-based AI models for intelligent, real-time file activity monitoring.
SIEM Integration: Send file events to Splunk, Elastic, or Sentinel via syslog or HTTP
AI Behavior Analytics: Analyze unusual file activity using anomaly detection
Compliance Enforcement: Enforce GDPR, HIPAA, or CMMC policies via file rules
Ransomware Prevention: Detect rapid file renames or entropy spikes and trigger a block
Understand File I/O Fundamentals: Even with the SDK abstracting complexities, a solid understanding of how Windows handles file I/O (IRPs, filter driver stack, pre- and post-operations) will be invaluable for effective debugging and optimization.
Start Simple, Then Expand: Begin with the most basic filter rules and event handlers. Verify their functionality thoroughly before adding more complex logic, additional filter rules, or integrating with other application components.
Avoid Synchronous Operations: Do not perform blocking I/O or network requests directly within a filter callback. This can lead to deadlocks or significant performance degradation. If external operations are required, dispatch them to a separate thread pool.
Optimize Filter Rules: Design your FileFilter rules to be as specific as possible. Broad rules with wildcards can lead to more events being intercepted than necessary, impacting performance.
Dynamic Rule Updates: EaseFilter allows you to dynamically add, remove, and modify filter rules. Design your application to update rules efficiently without causing disruption.
Rule Precedence: Understand how EaseFilter processes multiple filter rules. Typically, more specific rules take precedence, but always verify this behavior in the documentation.
Process and User Filters: Leverage the ability to apply filter rules based on ProcessNameAccessRightList and UserNameAccessRightList for fine-grained control. This is essential for enterprise security solutions.
When you receive an I/O event in your callback, the MESSAGE_SEND_DATA structure (or its equivalent in your chosen language) provides crucial context:
Use this information to build rich auditing, enforce complex policies, or modify file data intelligently.
The EaseFilter SDK offers a rich set of features that translate directly into significant benefits for developers:
Simplified Development: The SDK provides a high-level API, abstracting away the complexities of kernel-mode programming. This allows developers to focus on application logic rather than intricate driver internals.
Comprehensive Functionality: From real-time monitoring to granular access control and transparent encryption, EaseFilter offers a broad spectrum of capabilities to address diverse file system security and management needs.
Real-time Interception: The ability to intercept I/O requests before they are processed by the file system means you can implement proactive controls, blocking unauthorized actions in real-time.
Granular Control with Filter Rules: Define sophisticated filter rules based on file masks, process names, user identities, and desired access rights to implement highly specific policies.
Flexible Event Handling: Register callbacks for various file I/O events (pre- and post-operations) to execute custom logic, log information, or modify requests.
Support for Multiple SDK Types: EaseFilter provides distinct SDKs for File Monitoring, File Access Control, Transparent File Encryption, Process Monitoring/Protection, and Registry Protection, allowing you to choose the specific functionality you need.
C# and C++ Examples: The SDK includes demo source code in both C# and C++, making it easier to integrate into existing Windows applications.
Robust and Well-Tested: Backed by years of experience in file system filter driver development, EaseFilter provides a stable and reliable framework that works across various Windows operating system versions.
Scalability: The SDK is designed to handle a large volume of file I/O operations efficiently, making it suitable for enterprise-grade applications.
Reduced Time-to-Market: By providing pre-built components and a streamlined development process, EaseFilter significantly accelerates the creation of sophisticated file system solutions.
Integrating EaseFilter into your development workflow typically involves these steps:
Obtain the SDK: Download the EaseFilter SDK, which usually includes the necessary driver files (EaseFlt.sys) and the user-mode API library (FilterAPI.dll).
Install the Driver: The EaseFilter filter driver needs to be installed on the system where your application will run. This often requires administrator privileges.
Initialize the Filter Control: In your application, initialize the FilterControl object from the SDK, setting your license key and configuring the filter type (e.g., FILE_SYSTEM_MONITOR, FILE_SYSTEM_CONTROL).
Define Filter Rules: Create FileFilter objects to define your policies. These rules specify which files or directories to monitor or control, and what access rights are allowed or denied. You can include/exclude files, processes, and even users.
Register Callbacks: For monitoring, register callback functions for the I/O events you wish to track (e.g., OnPostFileCreate, OnPostFileWrite). For control, register pre-I/O callbacks (e.g., OnPreFileCreate, OnPreFileWrite) where you can allow or block the operation.
Send Configuration to the Driver: Once your filter rules and callbacks are defined, send this configuration to the kernel-mode driver using the SDK's API.
Handle Events and Implement Logic: Within your callback functions, you'll receive detailed information about the file I/O operation. This is where you implement your custom logic, such as logging, modifying data, or preventing access.
Stop and Uninstall: Ensure proper shutdown of the filter service and uninstallation of the driver when your application is no longer needed.
Project Configuration:
✅ Set Up Your C# Project
Add References:
Add a using directive:
csharpusing EaseFilter.FilterControl;
Use Case |
SDK Feature |
Example |
|---|---|---|
| Audit user file access | File Monitor SDK | Log who read/edited files |
| Prevent copy to USB | File Control SDK | Block write on E:\\ |
| Secure CAD files | File Encryption SDK | Auto-encrypt .dwg, .stp files |
| Block ransomware behavior | File Control + Monitor SDK | Deny mass-renaming/deleting |
| Insider threat detection | File Control + Monitor SDK | Alert when unauthorized user deletes critical files |
| Data exfiltration alerts | File Encryption + Control SDK | Detect Outlook or browser accessing encrypted documents |
| Behavioral analytics | File Monitor SDK | Feed user/process behavior into UEBA systems |
| Embed DRM in shared files | Encryption SDK with tags | Embed expiry metadata |
Real-Time File Activity Logging: Capture file operations like create, open, read, write, rename, delete.
Audit Trails: Track which users or processes accessed what files and when.
Use Cases: Compliance logging, forensic investigation, SIEM integration.
Example Code Snippet:
var filterControl = new FilterControl();
filterControl.StartFilter(...);
//create a file monitor filter rule, every filter rule must have the unique watch path.
FileFilter fileFilter = new FileFilter("c:\\monitorFolder\\*");
//Filter the file change event to monitor all file deleting and renaming events.
fileFilter.FileChangeEventFilter = FilterAPI.FileChangedEvents.NotifyFileWasDeleted
|FilterAPI.FileChangedEvents.NotifyFileWasRenamed|FilterAPI.FileChangedEvents.NotifyFileWasWritten;
//register the file change callback events.
fileFilter.NotifyFileWasChanged += NotifyFileChanged;
//Filter the monitor file IO events
fileFilter.MonitorFileIOEventFilter = MonitorFileIOEvents.OnFileCreate;
fileFilter.OnFileOpen += OnFileCreate;
filterControl.AddFilter(fileFilter);
filterControl.SendConfigSettingsToFilter(ref lastError));
while (Console.Read() != 'q') ;
filterControl.StopFilter();
Whitelist/Blacklist Rules: Allow or block access by process, user, or file type.
Permission Enforcement: Read-only, deny access, or mask file content for unauthorized users or apps.
Zero Trust Model: Default deny all, allow explicitly.
Example Code Snippet:
var filterControl = new FilterControl();
filterControl.StartFilter(...);
var rule = new FileFilter("C:\\SecureFolder\\*");
rule.EnableWriteToFile = false; // Prevent writes
rule.EnableDeleteFile = false; // Prevent deletions
rule.EnableRenameOrMoveFile = false; // Prevent renames
rule.ProcessNameAccessRightList.Add("notepad.exe", FilterAPI.ALLOW_MAX_RIGHT_ACCESS);
rule.ControlFileIOEventFilter = (ulong)(ControlFileIOEvents.OnPreFileCreate | ControlFileIOEvents.OnPreDeleteFile);
filterControl.AddFilter(rule);
filterControl.SendConfigSettingsToFilter();
Per-File Encryption Key: Encrypt files with unique keys on-the-fly.
Custom Key Management: Plug in your own key service (via callback).
Content Protection: Even if copied, files remain encrypted unless opened by an authorized process.
Example Code Snippet:
var filterControl = new FilterControl();
filterControl.StartFilter(...);
var rule = new FileFilter("C:\\SecureFolder\\*");
rule.EnableEncryption = true;
rule.OnFilterRequestEncryptKey += ProvideCustomKey;
filterControl.AddFilter(rule);
filterControl.SendConfigSettingsToFilter();
void ProvideCustomKey(object sender, EncryptKeyEventArgs e)
{
e.EncryptionKey = GetKeyFromSecureServer(e.FileName);
e.CustomTag = Encoding.UTF8.GetBytes("Confidential");
}
For developers looking to exert powerful, low-level control over file system interactions on Windows, the EaseFilter SDK is an invaluable asset. Its ability to simplify the complexities of file system filter driver development, coupled with its comprehensive feature set, empowers you to build sophisticated security, management, and data protection solutions with greater ease and efficiency. By leveraging EaseFilter, you can unlock new possibilities for your applications, providing unparalleled control and visibility over your data.