EaseFilter Demo Project
FilterAPI.h File Reference

Go to the source code of this file.

Classes

struct  _EASETAG_DATA
 
struct  _EASETAG_AES_DATA
 
struct  _EASETAG_EMBEDDED_DATA
 
struct  _CONTROL_DATA
 
struct  _FILE_CHANGED_DATA
 
struct  _MESSAGE_SEND_DATA
 
struct  _MESSAGE_REPLY_DATA
 

Macros

#define DOWNLOADED_BITMAP_NAME   L":EASECLOUD_BITMAP"
 
#define MESSAGE_SEND_VERIFICATION_NUMBER   0xFF000001
 
#define BLOCK_SIZE   65536
 
#define MAX_FILE_NAME_LENGTH   1024
 
#define MAX_SID_LENGTH   256
 
#define MAX_EXCLUDED_PROCESS_ID   200
 
#define MAX_INCLUDED_PROCESS_ID   200
 
#define MAX_PROTECTED_PROCESS_ID   200
 
#define MAX_BLOCK_SAVEAS_PROCESS_ID   200
 
#define MAX_PATH   260
 
#define MAX_ERROR_MESSAGE_SIZE   1024
 
#define IO_REPARSE_TAG_EASEVAULT_HSM   (0x0000003EL)
 
#define EASETAG_KEY   0xbba65d6f
 
#define AES_TAG_KEY   0xccb76e80
 
#define MAX_REQUEST_TYPE   32
 
#define STATUS_ACCESS_DENIED   0xC0000022L
 

Typedefs

typedef struct _EASETAG_DATA EASETAG_DATA
 
typedef struct _EASETAG_DATAPEASETAG_DATA
 
typedef enum _AESFlags AESFlags
 
typedef struct _EASETAG_AES_DATA EASETAG_AES_DATA
 
typedef struct _EASETAG_AES_DATAPEASETAG_AES_DATA
 
typedef struct _EASETAG_EMBEDDED_DATA EASETAG_EMBEDDED_DATA
 
typedef struct _EASETAG_EMBEDDED_DATAPEASETAG_EMBEDDED_DATA
 
typedef enum _FilterType FilterType
 
typedef enum _FilterCommand FilterCommand
 
typedef enum _MessageType MessageType
 
typedef enum _AccessFlag AccessFlag
 
typedef enum _ConnectionPortType ConnectionPortType
 
typedef enum _EVENT_OUTPUT_TYPE EVENT_OUTPUT_TYPE
 
typedef enum _EVENT_LEVEL EVENT_LEVEL
 
typedef enum _ControlType ControlType
 
typedef enum _DataControlId DataControlId
 
typedef enum _FilterRuleId FilterRuleId
 
typedef enum _StringControlId StringControlId
 
typedef enum _BooleanConfig BooleanConfig
 
typedef struct _CONTROL_DATA CONTROL_DATA
 
typedef struct _CONTROL_DATAPCONTROL_DATA
 
typedef struct _FILE_CHANGED_DATA FILE_CHANGED_DATA
 
typedef struct _FILE_CHANGED_DATAPFILE_CHANGED_DATA
 
typedef struct _MESSAGE_SEND_DATA MESSAGE_SEND_DATA
 
typedef struct _MESSAGE_SEND_DATAPMESSAGE_SEND_DATA
 
typedef enum _FilterStatus FilterStatus
 
typedef enum _FilterStatusPFilterStatus
 
typedef enum _FileEventType FileEventType
 
typedef enum _FileEventTypePFileEventType
 
typedef struct _MESSAGE_REPLY_DATA MESSAGE_REPLY_DATA
 
typedef struct _MESSAGE_REPLY_DATAPMESSAGE_REPLY_DATA
 
typedef BOOL(__stdcall * Proto_Message_Callback) (IN PMESSAGE_SEND_DATA pSendMessage, IN OUT PMESSAGE_REPLY_DATA pReplyMessage)
 
typedef VOID(__stdcall * Proto_Disconnect_Callback) ()
 

Enumerations

enum  _AESFlags {
  Flags_Enabled_Expire_Time = 0x00000010, Flags_Enabled_Check_ProcessName = 0x00000020, Flags_Enabled_Check_UserName = 0x00000040, Flags_Enabled_Check_AccessFlags = 0x00000080,
  Flags_Enabled_Check_User_Permit = 0x00000100, Flags_AES_Key_Was_Embedded = 0x00000200, Flags_Enabled_Request_IV_And_Key = 0x00000400, Flags_Enabled_Revoke_Access_Control = 0x00000800,
  Flags_Enabled_Check_Computer_Id = 0x00001000, Flags_Enabled_Check_User_Password = 0x00002000
}
 
enum  _FilterType {
  FILE_SYSTEM_MONITOR = 0, FILE_SYSTEM_CONTROL = 0x1, FILE_SYSTEM_ENCRYPTION = 0x2, FILE_SYSTEM_CONTROL_ENCRYPTION = 0x3,
  FILE_SYSTEM_MONITOR_ENCRYPTION = 0x4, FILE_SYSTEM_EASE_FILTER_ALL = 0x5, FILE_SYSTEM_HSM = 0x10, FILE_SYSTEM_CLOUD = 0x20
}
 
enum  _FilterCommand {
  MESSAGE_TYPE_RESTORE_BLOCK_OR_FILE = 0x00000001, MESSAGE_TYPE_RESTORE_FILE_TO_ORIGINAL_FOLDER = 0x00000002, MESSAGE_TYPE_GET_FILE_LIST = 0x00000004, MESSAGE_TYPE_RESTORE_FILE_TO_CACHE = 0x00000008,
  MESSAGE_TYPE_SEND_EVENT_NOTIFICATION = 0x00000010, MESSAGE_TYPE_DELETE_FILE = 0x00000020, MESSAGE_TYPE_RENAME_FILE = 0x00000040, MESSAGE_TYPE_FILE_CHANGED_PERSISTENT_FILENAME = 0x00000080,
  FILTER_SEND_FILE_CHANGED_EVENT = 0x00010001, FILTER_REQUEST_USER_PERMIT = 0x00010002, FILTER_REQUEST_ENCRYPTION_KEY = 0x00010003, FILTER_REQUEST_ENCRYPTION_IV_AND_KEY = 0x00010004
}
 
enum  _MessageType {
  PRE_CREATE = 0x00000001, POST_CREATE = 0x00000002, PRE_FASTIO_READ = 0x00000004, POST_FASTIO_READ = 0x00000008,
  PRE_CACHE_READ = 0x00000010, POST_CACHE_READ = 0x00000020, PRE_NOCACHE_READ = 0x00000040, POST_NOCACHE_READ = 0x00000080,
  PRE_PAGING_IO_READ = 0x00000100, POST_PAGING_IO_READ = 0x00000200, PRE_FASTIO_WRITE = 0x00000400, POST_FASTIO_WRITE = 0x00000800,
  PRE_CACHE_WRITE = 0x00001000, POST_CACHE_WRITE = 0x00002000, PRE_NOCACHE_WRITE = 0x00004000, POST_NOCACHE_WRITE = 0x00008000,
  PRE_PAGING_IO_WRITE = 0x00010000, POST_PAGING_IO_WRITE = 0x00020000, PRE_QUERY_INFORMATION = 0x00040000, POST_QUERY_INFORMATION = 0x00080000,
  PRE_SET_INFORMATION = 0x00100000, POST_SET_INFORMATION = 0x00200000, PRE_DIRECTORY = 0x00400000, POST_DIRECTORY = 0x00800000,
  PRE_QUERY_SECURITY = 0x01000000, POST_QUERY_SECURITY = 0x02000000, PRE_SET_SECURITY = 0x04000000, POST_SET_SECURITY = 0x08000000,
  PRE_CLEANUP = 0x10000000, POST_CLEANUP = 0x20000000, PRE_CLOSE = 0x40000000, POST_CLOSE = 0x80000000UL
}
 
enum  _AccessFlag {
  EXCLUDE_FILTER_RULE = 0x00000000, EXCLUDE_FILE_ACCESS = 0x00000001, REPARSE_FILE_OPEN = 0x00000002, HIDE_FILES_IN_DIRECTORY_BROWSING = 0x00000004,
  FILE_ENCRYPTION_RULE = 0x00000008, ALLOW_OPEN_WTIH_ACCESS_SYSTEM_SECURITY = 0x00000010, ALLOW_OPEN_WITH_READ_ACCESS = 0x00000020, ALLOW_OPEN_WITH_WRITE_ACCESS = 0x00000040,
  ALLOW_OPEN_WITH_CREATE_OR_OVERWRITE_ACCESS = 0x00000080, ALLOW_OPEN_WITH_DELETE_ACCESS = 0x00000100, ALLOW_READ_ACCESS = 0x00000200, ALLOW_WRITE_ACCESS = 0x00000400,
  ALLOW_QUERY_INFORMATION_ACCESS = 0x00000800, ALLOW_SET_INFORMATION = 0x00001000, ALLOW_FILE_RENAME = 0x00002000, ALLOW_FILE_DELETE = 0x00004000,
  ALLOW_FILE_SIZE_CHANGE = 0x00008000, ALLOW_QUERY_SECURITY_ACCESS = 0x00010000, ALLOW_SET_SECURITY_ACCESS = 0x00020000, ALLOW_DIRECTORY_LIST_ACCESS = 0x00040000,
  ALLOW_FILE_ACCESS_FROM_NETWORK = 0x00080000, ALLOW_NEW_FILE_ENCRYPTION = 0x00100000, ALLOW_ALL_SAVE_AS = 0x00200000, ALLOW_INCLUDE_PROCESS_SAVE_AS = 0x00400000,
  ALLOW_MAX_RIGHT_ACCESS = 0xfffffff0
}
 
enum  _ConnectionPortType { ClientMessagePort = 0, ClientControlPort = 1 }
 
enum  _EVENT_OUTPUT_TYPE { OUTPUT_NONE = 0, OUTPUT_DEBUGGER = 1, OUTPUT_EVENTLOG = 2, OUTPUT_FILE = 3 }
 
enum  _EVENT_LEVEL {
  EVENT_LEVEL_NONE = 0, EVENT_LEVEL_CRITICAL = 1, EVENT_LEVEL_ERROR = 2, EVENT_LEVEL_WARNING = 3,
  EVENT_LEVEL_INFORMATION = 4, EVENT_LEVEL_VERBOSE = 5
}
 
enum  _ControlType {
  CONTROL_SET_INTEGER_DATA = 1, CONTROL_SET_STRING_DATA, CONTROL_REGISTER_REQUEST, CONTROL_ADD_FILTER_RULE,
  CONTROL_REMOVE_FILTER_RULE, CONTROL_ADD_EXCLUDED_PID, CONTROL_REMOVE_EXCLUDED_PID, CONTROL_RESET_CONFIG_DATA,
  CONTROL_GET_FILE_HANDLE, CONTROL_CLOSE_FILE_HANDLE, CONTROL_ADD_INCLUDED_PID, CONTROL_REMOVE_INCLUDED_PID,
  CONTROL_ADD_PROTECTED_PID, CONTROL_REMOVE_PROTECTED_PID, CONTROL_ADD_BLOCK_SAVEAS_PID, CONTROL_REMOVE_BLOCK_SAVEAS_PID,
  CONTROL_MAX_TYPE
}
 
enum  _DataControlId {
  FILTER_TYPE_ID = 1, EVENT_OUTPUT_TYPE_ID, EVENT_LEVEL_ID, EVENT_FLAGS_ID,
  CONNECTION_TIMEOUT_ID, BOOLEAN_CONFIG_ID, WAIT_BLOCK_DATA_INTERVAL, WAIT_BLOCK_DATA_TIMEOUT,
  DIR_CACHE_TIMEOUT, MAX_TOTAL_DIR_CACHE_SIZE, DELETE_NO_ACCESS_DIR_INFO_IN_SECONDS, FILE_CHANGED_QUEUE_TTL_IN_SECONDS,
  MAX_CHANGED_FILES_IN_QUEUE, MAX_DATA_CONTROL_ID
}
 
enum  _FilterRuleId {
  ADD_NEW_FILTER_RULE = 0x100, FILTER_RULE_ADD_EXCLUDE_FILE_FILTER_MASK, FILTER_RULE_REMOVE_EXLCUDE_FILE_FILTER_MASK, FILTER_RULE_ADD_HIDDEN_FILE_FILTER_MASK,
  FILTER_RULE_REMOVE_HIDDEN_FILE_FILTER_MASK, FILTER_RULE_ADD_REPARSE_FILTER_MASK, FILTER_RULE_REMOVE_REPARSE_FILTER_MASK, FILTER_RULE_ADD_ENCRYPTION_KEY,
  FILTER_RULE_ADD_INCLUDE_PROCESS_ID, FILTER_RULE_REMOVE_INCLUDE_PROCESS_ID, FILTER_RULE_ADD_EXCLUDE_PROCESS_ID, FILTER_RULE_REMOVE_EXCLUDE_PROCESS_ID,
  FILTER_RULE_REGISTER_EVENTYPE, FILTER_RULE_UNREGISTER_EVENTYPE, FILTER_RULE_ADD_INCLUDE_PROCESS_NAME, FILTER_RULE_REMOVE_INCLUDE_PROCESS_NAME,
  FILTER_RULE_ADD_EXCLUDE_PROCESS_NAME, FILTER_RULE_REMOVE_EXCLUDE_PROCESS_NAME, FILTER_RULE_ADD_INCLUDE_USER_NAME, FILTER_RULE_REMOVE_INCLUDE_USER_NAME,
  FILTER_RULE_ADD_EXCLUDE_USER_NAME, FILTER_RULE_REMOVE_EXCLUDE_USER_NAME, FILTER_RULE_REGISTER_MONITOR_IO, FILTER_RULE_REGISTER_CONTROL_IO
}
 
enum  _StringControlId { STRING_TRASACTION_FOLDER_ID = 1, STRING_REALTIME_JOB_SUFFIX_ID = 2, MAX_STRING_CONTROL_ID }
 
enum  _BooleanConfig {
  ENABLE_NO_RECALL_FLAG = 0x00000001, DISABLE_FILTER_UNLOAD_FLAG = 0x00000002, ENABLE_SET_OFFLINE_FLAG = 0x00000004, ENABLE_DEFAULT_IV_TAG = 0x00000008,
  ENABLE_ADD_CHANGED_FILE_TO_QUEUE = 0x00000010, ENABLE_ENCRYPTION_KEY_FOR_NEW_FILE = 0x0000020, ENABLE_ENCRYPTION_KEY_AND_IV_FOR_NEW_FILE = 0x00000040
}
 
enum  _FilterStatus {
  FILTER_MESSAGE_IS_DIRTY = 0x00000001, FILTER_COMPLETE_PRE_OPERATION = 0x00000002, FILTER_DATA_BUFFER_IS_UPDATED = 0x00000004, FILTER_BLOCK_DATA_WAS_RETURNED = 0x00000008,
  FILTER_CACHE_FILE_WAS_RETURNED = 0x00000010
}
 
enum  _FileEventType {
  CONTEXT_WAS_REMOVED = 0x00000001, FILE_WAS_CREATED = 0x00000020, FILE_WAS_WRITTEN = 0x00000040, FILE_WAS_RENAMED = 0x00000080,
  FILE_WAS_DELETED = 0x00000100, FILE_SECURITY_CHANGED = 0x00000200, FILE_INFO_CHANGED = 0x00000400, FILE_WAS_READ = 0x00000800
}
 

Functions

 __declspec (dllexport) BOOL InstallDriver()
 

Variables

Proto_Message_Callback MessageCallback
 
Proto_Message_Callback Proto_Disconnect_Callback DisconnectCallback
 
PULONG BufferLength
 
LONGLONG data
 
WCHAR * stringData
 
WCHAR * FilterMask
 
WCHAR WCHAR * FilterMask2 = NULL
 
WCHAR WCHAR ULONG keyLength = 0
 
WCHAR WCHAR ULONG PUCHAR key = NULL)
 
WCHAR * filterMask
 
ULONG encryptionKeyLength
 
ULONG PUCHAR encryptionKey
 
WCHAR * reparseFilterMask
 
WCHAR * hiddenFileFilterMask
 
WCHAR * excludeFileFilterMask
 
ULONG excludePID
 
ULONG includePID
 
ULONG eventType
 
ULONG registerIO
 
WCHAR * processName
 
WCHAR * userName
 
ULONG DesiredAccess
 
ULONG HANDLE * FileHandle
 
DWORD dwDesiredAccess
 
DWORD DWORD dwShareMode
 
DWORD DWORD PHANDLE pHandle
 
DWORD DWORD DWORD dwCreationDisposition
 
DWORD DWORD DWORD DWORD dwFlagsAndAttributes
 
LONGLONG fileSize
 
LONGLONG ULONG fileAttributes
 
LONGLONG ULONG ULONG tagDataLength
 
LONGLONG ULONG ULONG BYTE * tagData
 
LONGLONG ULONG ULONG BYTE BOOL overwriteIfExist
 
BOOLEAN updateTimeStamp = FALSE)
 
IN LONGLONG queryOffset
 
IN LONGLONG IN LONGLONG queryLength
 
IN LONGLONG IN LONGLONG IN OUT PFILE_ALLOCATED_RANGE_BUFFER allocatedBuffer
 
IN LONGLONG IN LONGLONG IN OUT PFILE_ALLOCATED_RANGE_BUFFER IN ULONG allocatedBufferSize
 
IN LONGLONG IN LONGLONG IN OUT PFILE_ALLOCATED_RANGE_BUFFER IN ULONG OUT ULONG * returnBufferLength
 
ULONG BYTE ULONG ivLength = 0
 
ULONG BYTE ULONG BYTE * iv = NULL
 
ULONG BYTE ULONG BYTE BOOLEAN addIVTag = TRUE)
 
LPCTSTR destFileName
 
PULONG BYTE * ivTag
 
ULONG BYTE LONGLONG expireTime
 
ULONG BYTE LONGLONG HANDLE fileHandle
 
BYTE * outputBuffer
 
BYTE ULONG bufferLength
 
BYTE ULONG LONGLONG offset
 
BYTE ULONG LONGLONG BYTE ULONG BYTE * ivKey
 

Macro Definition Documentation

◆ AES_TAG_KEY

#define AES_TAG_KEY   0xccb76e80

Definition at line 48 of file FilterAPI.h.

◆ BLOCK_SIZE

#define BLOCK_SIZE   65536

Definition at line 16 of file FilterAPI.h.

◆ DOWNLOADED_BITMAP_NAME

#define DOWNLOADED_BITMAP_NAME   L":EASECLOUD_BITMAP"

Definition at line 14 of file FilterAPI.h.

◆ EASETAG_KEY

#define EASETAG_KEY   0xbba65d6f

Definition at line 37 of file FilterAPI.h.

◆ IO_REPARSE_TAG_EASEVAULT_HSM

#define IO_REPARSE_TAG_EASEVAULT_HSM   (0x0000003EL)

Definition at line 32 of file FilterAPI.h.

◆ MAX_BLOCK_SAVEAS_PROCESS_ID

#define MAX_BLOCK_SAVEAS_PROCESS_ID   200

Definition at line 22 of file FilterAPI.h.

◆ MAX_ERROR_MESSAGE_SIZE

#define MAX_ERROR_MESSAGE_SIZE   1024

Definition at line 24 of file FilterAPI.h.

◆ MAX_EXCLUDED_PROCESS_ID

#define MAX_EXCLUDED_PROCESS_ID   200

Definition at line 19 of file FilterAPI.h.

◆ MAX_FILE_NAME_LENGTH

#define MAX_FILE_NAME_LENGTH   1024

Definition at line 17 of file FilterAPI.h.

◆ MAX_INCLUDED_PROCESS_ID

#define MAX_INCLUDED_PROCESS_ID   200

Definition at line 20 of file FilterAPI.h.

◆ MAX_PATH

#define MAX_PATH   260

Definition at line 23 of file FilterAPI.h.

◆ MAX_PROTECTED_PROCESS_ID

#define MAX_PROTECTED_PROCESS_ID   200

Definition at line 21 of file FilterAPI.h.

◆ MAX_REQUEST_TYPE

#define MAX_REQUEST_TYPE   32

Definition at line 133 of file FilterAPI.h.

◆ MAX_SID_LENGTH

#define MAX_SID_LENGTH   256

Definition at line 18 of file FilterAPI.h.

◆ MESSAGE_SEND_VERIFICATION_NUMBER

#define MESSAGE_SEND_VERIFICATION_NUMBER   0xFF000001

Definition at line 15 of file FilterAPI.h.

◆ STATUS_ACCESS_DENIED

#define STATUS_ACCESS_DENIED   0xC0000022L

Definition at line 484 of file FilterAPI.h.

Typedef Documentation

◆ AccessFlag

typedef enum _AccessFlag AccessFlag

◆ AESFlags

typedef enum _AESFlags AESFlags

◆ BooleanConfig

◆ ConnectionPortType

◆ CONTROL_DATA

typedef struct _CONTROL_DATA CONTROL_DATA

◆ ControlType

typedef enum _ControlType ControlType

◆ DataControlId

◆ EASETAG_AES_DATA

◆ EASETAG_DATA

typedef struct _EASETAG_DATA EASETAG_DATA

◆ EASETAG_EMBEDDED_DATA

◆ EVENT_LEVEL

typedef enum _EVENT_LEVEL EVENT_LEVEL

◆ EVENT_OUTPUT_TYPE

◆ FILE_CHANGED_DATA

◆ FileEventType

◆ FilterCommand

◆ FilterRuleId

◆ FilterStatus

◆ FilterType

typedef enum _FilterType FilterType

◆ MESSAGE_REPLY_DATA

◆ MESSAGE_SEND_DATA

◆ MessageType

typedef enum _MessageType MessageType

◆ PCONTROL_DATA

typedef struct _CONTROL_DATA * PCONTROL_DATA

◆ PEASETAG_AES_DATA

◆ PEASETAG_DATA

typedef struct _EASETAG_DATA * PEASETAG_DATA

◆ PEASETAG_EMBEDDED_DATA

◆ PFILE_CHANGED_DATA

◆ PFileEventType

◆ PFilterStatus

typedef enum _FilterStatus * PFilterStatus

◆ PMESSAGE_REPLY_DATA

◆ PMESSAGE_SEND_DATA

◆ Proto_Disconnect_Callback

typedef VOID(__stdcall * Proto_Disconnect_Callback) ()

Definition at line 502 of file FilterAPI.h.

◆ Proto_Message_Callback

typedef BOOL(__stdcall * Proto_Message_Callback) (IN PMESSAGE_SEND_DATA pSendMessage, IN OUT PMESSAGE_REPLY_DATA pReplyMessage)

Definition at line 498 of file FilterAPI.h.

◆ StringControlId

Enumeration Type Documentation

◆ _AccessFlag

Enumerator
EXCLUDE_FILTER_RULE 
EXCLUDE_FILE_ACCESS 
REPARSE_FILE_OPEN 
HIDE_FILES_IN_DIRECTORY_BROWSING 
FILE_ENCRYPTION_RULE 
ALLOW_OPEN_WTIH_ACCESS_SYSTEM_SECURITY 
ALLOW_OPEN_WITH_READ_ACCESS 
ALLOW_OPEN_WITH_WRITE_ACCESS 
ALLOW_OPEN_WITH_CREATE_OR_OVERWRITE_ACCESS 
ALLOW_OPEN_WITH_DELETE_ACCESS 
ALLOW_READ_ACCESS 
ALLOW_WRITE_ACCESS 
ALLOW_QUERY_INFORMATION_ACCESS 
ALLOW_SET_INFORMATION 
ALLOW_FILE_RENAME 
ALLOW_FILE_DELETE 
ALLOW_FILE_SIZE_CHANGE 
ALLOW_QUERY_SECURITY_ACCESS 
ALLOW_SET_SECURITY_ACCESS 
ALLOW_DIRECTORY_LIST_ACCESS 
ALLOW_FILE_ACCESS_FROM_NETWORK 
ALLOW_NEW_FILE_ENCRYPTION 
ALLOW_ALL_SAVE_AS 
ALLOW_INCLUDE_PROCESS_SAVE_AS 
ALLOW_MAX_RIGHT_ACCESS 

Definition at line 194 of file FilterAPI.h.

◆ _AESFlags

enum _AESFlags
Enumerator
Flags_Enabled_Expire_Time 
Flags_Enabled_Check_ProcessName 
Flags_Enabled_Check_UserName 
Flags_Enabled_Check_AccessFlags 
Flags_Enabled_Check_User_Permit 
Flags_AES_Key_Was_Embedded 
Flags_Enabled_Request_IV_And_Key 
Flags_Enabled_Revoke_Access_Control 
Flags_Enabled_Check_Computer_Id 
Flags_Enabled_Check_User_Password 

Definition at line 51 of file FilterAPI.h.

◆ _BooleanConfig

Enumerator
ENABLE_NO_RECALL_FLAG 
DISABLE_FILTER_UNLOAD_FLAG 
ENABLE_SET_OFFLINE_FLAG 
ENABLE_DEFAULT_IV_TAG 
ENABLE_ADD_CHANGED_FILE_TO_QUEUE 
ENABLE_ENCRYPTION_KEY_FOR_NEW_FILE 
ENABLE_ENCRYPTION_KEY_AND_IV_FOR_NEW_FILE 

Definition at line 340 of file FilterAPI.h.

◆ _ConnectionPortType

Enumerator
ClientMessagePort 
ClientControlPort 

Definition at line 226 of file FilterAPI.h.

◆ _ControlType

Enumerator
CONTROL_SET_INTEGER_DATA 
CONTROL_SET_STRING_DATA 
CONTROL_REGISTER_REQUEST 
CONTROL_ADD_FILTER_RULE 
CONTROL_REMOVE_FILTER_RULE 
CONTROL_ADD_EXCLUDED_PID 
CONTROL_REMOVE_EXCLUDED_PID 
CONTROL_RESET_CONFIG_DATA 
CONTROL_GET_FILE_HANDLE 
CONTROL_CLOSE_FILE_HANDLE 
CONTROL_ADD_INCLUDED_PID 
CONTROL_REMOVE_INCLUDED_PID 
CONTROL_ADD_PROTECTED_PID 
CONTROL_REMOVE_PROTECTED_PID 
CONTROL_ADD_BLOCK_SAVEAS_PID 
CONTROL_REMOVE_BLOCK_SAVEAS_PID 
CONTROL_MAX_TYPE 

Definition at line 254 of file FilterAPI.h.

◆ _DataControlId

Enumerator
FILTER_TYPE_ID 
EVENT_OUTPUT_TYPE_ID 
EVENT_LEVEL_ID 
EVENT_FLAGS_ID 
CONNECTION_TIMEOUT_ID 
BOOLEAN_CONFIG_ID 
WAIT_BLOCK_DATA_INTERVAL 
WAIT_BLOCK_DATA_TIMEOUT 
DIR_CACHE_TIMEOUT 
MAX_TOTAL_DIR_CACHE_SIZE 
DELETE_NO_ACCESS_DIR_INFO_IN_SECONDS 
FILE_CHANGED_QUEUE_TTL_IN_SECONDS 
MAX_CHANGED_FILES_IN_QUEUE 
MAX_DATA_CONTROL_ID 

Definition at line 277 of file FilterAPI.h.

◆ _EVENT_LEVEL

Enumerator
EVENT_LEVEL_NONE 
EVENT_LEVEL_CRITICAL 
EVENT_LEVEL_ERROR 
EVENT_LEVEL_WARNING 
EVENT_LEVEL_INFORMATION 
EVENT_LEVEL_VERBOSE 

Definition at line 242 of file FilterAPI.h.

◆ _EVENT_OUTPUT_TYPE

Enumerator
OUTPUT_NONE 
OUTPUT_DEBUGGER 
OUTPUT_EVENTLOG 
OUTPUT_FILE 

Definition at line 233 of file FilterAPI.h.

◆ _FileEventType

Enumerator
CONTEXT_WAS_REMOVED 
FILE_WAS_CREATED 
FILE_WAS_WRITTEN 
FILE_WAS_RENAMED 
FILE_WAS_DELETED 
FILE_SECURITY_CHANGED 
FILE_INFO_CHANGED 
FILE_WAS_READ 

Definition at line 435 of file FilterAPI.h.

◆ _FilterCommand

Enumerator
MESSAGE_TYPE_RESTORE_BLOCK_OR_FILE 
MESSAGE_TYPE_RESTORE_FILE_TO_ORIGINAL_FOLDER 
MESSAGE_TYPE_GET_FILE_LIST 
MESSAGE_TYPE_RESTORE_FILE_TO_CACHE 
MESSAGE_TYPE_SEND_EVENT_NOTIFICATION 
MESSAGE_TYPE_DELETE_FILE 
MESSAGE_TYPE_RENAME_FILE 
MESSAGE_TYPE_FILE_CHANGED_PERSISTENT_FILENAME 
FILTER_SEND_FILE_CHANGED_EVENT 
FILTER_REQUEST_USER_PERMIT 
FILTER_REQUEST_ENCRYPTION_KEY 
FILTER_REQUEST_ENCRYPTION_IV_AND_KEY 

Definition at line 136 of file FilterAPI.h.

◆ _FilterRuleId

Enumerator
ADD_NEW_FILTER_RULE 
FILTER_RULE_ADD_EXCLUDE_FILE_FILTER_MASK 
FILTER_RULE_REMOVE_EXLCUDE_FILE_FILTER_MASK 
FILTER_RULE_ADD_HIDDEN_FILE_FILTER_MASK 
FILTER_RULE_REMOVE_HIDDEN_FILE_FILTER_MASK 
FILTER_RULE_ADD_REPARSE_FILTER_MASK 
FILTER_RULE_REMOVE_REPARSE_FILTER_MASK 
FILTER_RULE_ADD_ENCRYPTION_KEY 
FILTER_RULE_ADD_INCLUDE_PROCESS_ID 
FILTER_RULE_REMOVE_INCLUDE_PROCESS_ID 
FILTER_RULE_ADD_EXCLUDE_PROCESS_ID 
FILTER_RULE_REMOVE_EXCLUDE_PROCESS_ID 
FILTER_RULE_REGISTER_EVENTYPE 
FILTER_RULE_UNREGISTER_EVENTYPE 
FILTER_RULE_ADD_INCLUDE_PROCESS_NAME 
FILTER_RULE_REMOVE_INCLUDE_PROCESS_NAME 
FILTER_RULE_ADD_EXCLUDE_PROCESS_NAME 
FILTER_RULE_REMOVE_EXCLUDE_PROCESS_NAME 
FILTER_RULE_ADD_INCLUDE_USER_NAME 
FILTER_RULE_REMOVE_INCLUDE_USER_NAME 
FILTER_RULE_ADD_EXCLUDE_USER_NAME 
FILTER_RULE_REMOVE_EXCLUDE_USER_NAME 
FILTER_RULE_REGISTER_MONITOR_IO 
FILTER_RULE_REGISTER_CONTROL_IO 

Definition at line 298 of file FilterAPI.h.

◆ _FilterStatus

Enumerator
FILTER_MESSAGE_IS_DIRTY 
FILTER_COMPLETE_PRE_OPERATION 
FILTER_DATA_BUFFER_IS_UPDATED 
FILTER_BLOCK_DATA_WAS_RETURNED 
FILTER_CACHE_FILE_WAS_RETURNED 

Definition at line 424 of file FilterAPI.h.

◆ _FilterType

Enumerator
FILE_SYSTEM_MONITOR 
FILE_SYSTEM_CONTROL 
FILE_SYSTEM_ENCRYPTION 
FILE_SYSTEM_CONTROL_ENCRYPTION 
FILE_SYSTEM_MONITOR_ENCRYPTION 
FILE_SYSTEM_EASE_FILTER_ALL 
FILE_SYSTEM_HSM 
FILE_SYSTEM_CLOUD 

Definition at line 119 of file FilterAPI.h.

◆ _MessageType

Enumerator
PRE_CREATE 
POST_CREATE 
PRE_FASTIO_READ 
POST_FASTIO_READ 
PRE_CACHE_READ 
POST_CACHE_READ 
PRE_NOCACHE_READ 
POST_NOCACHE_READ 
PRE_PAGING_IO_READ 
POST_PAGING_IO_READ 
PRE_FASTIO_WRITE 
POST_FASTIO_WRITE 
PRE_CACHE_WRITE 
POST_CACHE_WRITE 
PRE_NOCACHE_WRITE 
POST_NOCACHE_WRITE 
PRE_PAGING_IO_WRITE 
POST_PAGING_IO_WRITE 
PRE_QUERY_INFORMATION 
POST_QUERY_INFORMATION 
PRE_SET_INFORMATION 
POST_SET_INFORMATION 
PRE_DIRECTORY 
POST_DIRECTORY 
PRE_QUERY_SECURITY 
POST_QUERY_SECURITY 
PRE_SET_SECURITY 
POST_SET_SECURITY 
PRE_CLEANUP 
POST_CLEANUP 
PRE_CLOSE 
POST_CLOSE 

Definition at line 155 of file FilterAPI.h.

◆ _StringControlId

Enumerator
STRING_TRASACTION_FOLDER_ID 
STRING_REALTIME_JOB_SUFFIX_ID 
MAX_STRING_CONTROL_ID 

Definition at line 329 of file FilterAPI.h.

Function Documentation

◆ __declspec()

__declspec ( dllexport  )

Variable Documentation

◆ addIVTag

LPCTSTR ULONG BYTE ULONG BYTE BOOLEAN addIVTag = TRUE)

Definition at line 742 of file FilterAPI.h.

◆ allocatedBuffer

IN LONGLONG IN LONGLONG IN OUT PFILE_ALLOCATED_RANGE_BUFFER allocatedBuffer

Definition at line 722 of file FilterAPI.h.

◆ allocatedBufferSize

IN LONGLONG IN LONGLONG IN OUT PFILE_ALLOCATED_RANGE_BUFFER IN ULONG allocatedBufferSize

Definition at line 722 of file FilterAPI.h.

◆ BufferLength

PULONG BufferLength

Definition at line 517 of file FilterAPI.h.

◆ bufferLength

PULONG bufferLength

Definition at line 812 of file FilterAPI.h.

◆ data

LONGLONG data

Definition at line 521 of file FilterAPI.h.

◆ DesiredAccess

ULONG DesiredAccess

Definition at line 652 of file FilterAPI.h.

◆ destFileName

LPCTSTR destFileName

Definition at line 757 of file FilterAPI.h.

◆ DisconnectCallback

Definition at line 508 of file FilterAPI.h.

◆ dwCreationDisposition

DWORD DWORD DWORD dwCreationDisposition

Definition at line 674 of file FilterAPI.h.

◆ dwDesiredAccess

DWORD dwDesiredAccess

Definition at line 666 of file FilterAPI.h.

◆ dwFlagsAndAttributes

DWORD DWORD DWORD DWORD dwFlagsAndAttributes

Definition at line 674 of file FilterAPI.h.

◆ dwShareMode

DWORD DWORD dwShareMode

Definition at line 666 of file FilterAPI.h.

◆ encryptionKey

ULONG PUCHAR encryptionKey

Definition at line 561 of file FilterAPI.h.

◆ encryptionKeyLength

ULONG encryptionKeyLength

Definition at line 561 of file FilterAPI.h.

◆ eventType

ULONG eventType

Definition at line 584 of file FilterAPI.h.

◆ excludeFileFilterMask

WCHAR* excludeFileFilterMask

Definition at line 572 of file FilterAPI.h.

◆ excludePID

ULONG excludePID

Definition at line 576 of file FilterAPI.h.

◆ expireTime

ULONG BYTE LONGLONG expireTime

Definition at line 792 of file FilterAPI.h.

◆ fileAttributes

LONGLONG ULONG fileAttributes

Definition at line 684 of file FilterAPI.h.

◆ FileHandle

ULONG HANDLE* FileHandle

Definition at line 652 of file FilterAPI.h.

◆ fileHandle

ULONG BYTE LONGLONG HANDLE fileHandle

Definition at line 792 of file FilterAPI.h.

◆ fileSize

LONGLONG fileSize

Definition at line 684 of file FilterAPI.h.

◆ FilterMask

WCHAR* FilterMask

Definition at line 553 of file FilterAPI.h.

◆ filterMask

WCHAR* filterMask

Definition at line 557 of file FilterAPI.h.

◆ FilterMask2

WCHAR WCHAR* FilterMask2 = NULL

Definition at line 553 of file FilterAPI.h.

◆ hiddenFileFilterMask

WCHAR* hiddenFileFilterMask

Definition at line 569 of file FilterAPI.h.

◆ includePID

ULONG includePID

Definition at line 580 of file FilterAPI.h.

◆ iv

LPCTSTR ULONG BYTE ULONG BYTE* iv = NULL

Definition at line 741 of file FilterAPI.h.

◆ ivKey

BYTE ULONG LONGLONG BYTE ULONG BYTE* ivKey

Definition at line 812 of file FilterAPI.h.

◆ ivLength

BYTE ULONG LONGLONG BYTE ULONG BYTE ULONG ivLength = 0

Definition at line 740 of file FilterAPI.h.

◆ ivTag

ULONG BYTE * ivTag

Definition at line 778 of file FilterAPI.h.

◆ key

BYTE ULONG LONGLONG BYTE* key = NULL)

Definition at line 553 of file FilterAPI.h.

◆ keyLength

BYTE ULONG LONGLONG BYTE ULONG keyLength = 0

Definition at line 553 of file FilterAPI.h.

◆ MessageCallback

Proto_Message_Callback MessageCallback

Definition at line 508 of file FilterAPI.h.

◆ offset

BYTE ULONG LONGLONG offset

Definition at line 812 of file FilterAPI.h.

◆ outputBuffer

BYTE* outputBuffer

Definition at line 812 of file FilterAPI.h.

◆ overwriteIfExist

LONGLONG ULONG ULONG BYTE BOOL overwriteIfExist

Definition at line 684 of file FilterAPI.h.

◆ pHandle

LONGLONG ULONG ULONG BYTE BOOL PHANDLE pHandle

Definition at line 666 of file FilterAPI.h.

◆ processName

WCHAR * processName

Definition at line 596 of file FilterAPI.h.

◆ queryLength

IN LONGLONG IN LONGLONG queryLength

Definition at line 722 of file FilterAPI.h.

◆ queryOffset

IN LONGLONG queryOffset

Definition at line 722 of file FilterAPI.h.

◆ registerIO

ULONG registerIO

Definition at line 588 of file FilterAPI.h.

◆ reparseFilterMask

WCHAR* reparseFilterMask

Definition at line 565 of file FilterAPI.h.

◆ returnBufferLength

IN LONGLONG IN LONGLONG IN OUT PFILE_ALLOCATED_RANGE_BUFFER IN ULONG OUT ULONG* returnBufferLength

Definition at line 722 of file FilterAPI.h.

◆ stringData

WCHAR* stringData

Definition at line 525 of file FilterAPI.h.

◆ tagData

ULONG BYTE * tagData

Definition at line 684 of file FilterAPI.h.

◆ tagDataLength

ULONG tagDataLength

Definition at line 684 of file FilterAPI.h.

◆ updateTimeStamp

BOOLEAN updateTimeStamp = FALSE)

Definition at line 702 of file FilterAPI.h.

◆ userName

WCHAR* userName

Definition at line 604 of file FilterAPI.h.

Social Network


Services Overview

Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.

Contact Us

You are welcome to contact us for salse or partnership.

Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com