/**
* @file TYEFCtrl.h
*
* @brief TYEFCtrl.h, v 1.0.0 2005/11/4 12:05:06 sunwang
*
* details here.
* TYFilter interface for c/c++
*
* @author sunwang <[email protected]>
*/
#pragma once
#ifdef __CPLUSPLUS
extern "C"
{
#endif
//
// TYFilter interface
//
// Error mgr routine
DWORD __stdcall TYFilterGetLastError(void);
DWORD __stdcall TYFilterPSetLastError(DWORD errorCode);
PTCHAR __stdcall TYFilterTranslateError(DWORD errorCode);
// Debug routine
DWORD __stdcall TYFilterPDebug(void);
// Driver mgr routine
DWORD __stdcall TYFilterInstall(DWORD loadFlag);
DWORD __stdcall TYFilterUninstall(void);
DWORD __stdcall TYFilterLoadByhand(void);
DWORD __stdcall TYFilterPUnloadByhand(void);
DWORD __stdcall TYFilterPGetRefCount(PDWORD refCount);
DWORD __stdcall TYFilterPOpen(PHANDLE pHandle);
DWORD __stdcall TYFilterPClose(HANDLE hDevice);
DWORD __stdcall TYFilterCheckDriverStatus(void);
// Key mgr routine
DWORD __stdcall TYFilterPlugKey(void);
DWORD __stdcall TYFilterUnplugKey(void);
DWORD __stdcall TYFilterPSetKey(PVOID keyData);
DWORD __stdcall TYFilterSetDefaultKey(DWORD keyFlag);
DWORD __stdcall TYFilterPVerifyKey(PVOID lfiData);
DWORD __stdcall TYFilterPGetKeyCheck(DWORD keyFlag,PVOID keyCheck);
DWORD __stdcall TYFilterPWriteSoftKey(PVOID privateKey,PVOID publicKey,PTCHAR publicKeyName);
DWORD __stdcall TYFilterPReadSoftKey(PVOID privateKey,PVOID publicKey,PTCHAR publicKeyName);
DWORD __stdcall TYFilterCheckKeyStatus(void);
// Log mgr routine
DWORD __stdcall TYFilterStartLogging(void);
DWORD __stdcall TYFilterStopLogging(void);
DWORD __stdcall TYFilterZeroLog(void);
DWORD __stdcall TYFilterPGetLog(PVOID buffer,int* length);
DWORD __stdcall TYFilterGetLogFirst(PDWORD handle,PVOID logItem);
DWORD __stdcall TYFilterGetLogNext(DWORD handle,PVOID logItem);
DWORD __stdcall TYFilterGetLogClose(DWORD handle);
// EFH operation
DWORD __stdcall TYFilterPReadEFH(PVOID lfiData);
DWORD __stdcall TYFilterPWriteEFH(PVOID lfiData);
DWORD __stdcall TYFilterPDeleteEFH(PVOID lfiData);
// Buffer operation
DWORD __stdcall TYFilterEncryptBuffer(PVOID buffer,int length,DWORD keyFlag);
DWORD __stdcall TYFilterDecryptBuffer(PVOID buffer,int length,DWORD keyFlag);
// File/Dir operation
DWORD __stdcall TYFilterEncryptFile(PTCHAR filePath,DWORD keyFlag,HANDLE eventCancel,HWND wndProgress,DWORD slient);
DWORD __stdcall TYFilterDecryptFile(PTCHAR filePath,HANDLE eventCancel,HWND wndProgress,DWORD slient);
DWORD __stdcall TYFilterEncryptDir(PTCHAR dirPath,DWORD keyFlag,HANDLE eventCancel,HWND wndProgress,DWORD slient);
DWORD __stdcall TYFilterDecryptDir(PTCHAR dirPath,HANDLE eventCancel,HWND wndProgress,DWORD slient);
DWORD __stdcall TYFilterPEnableAutoEncrypt(void);
DWORD __stdcall TYFilterPDisableAutoEncrypt(void);
DWORD __stdcall TYFilterIsFileEncrypted(PTCHAR filePath,PDWORD result);
DWORD __stdcall TYFilterIsDirEncrypted(PTCHAR dirPath,PDWORD result);
DWORD __stdcall TYFilterEnableOpenEncrypt(void);
DWORD __stdcall TYFilterDisableOpenEncrypt(void);
// Drive mgr routine
DWORD __stdcall TYFilterGetLogicalDrives(PDWORD drives);
DWORD __stdcall TYFilterGetDriveType(TCHAR drive,PDWORD type);
DWORD __stdcall TYFilterSetHookDrives(DWORD drives,int hookNetwork);
DWORD __stdcall TYFilterSetLockDrives(DWORD drives,int lockNetwork);
// Filter mgr routine
DWORD __stdcall TYFilterPSetFilter(PVOID filter);
DWORD __stdcall TYFilterSetFilter(PTCHAR processEncryptList,PTCHAR postfixEncryptList,PTCHAR processDenyList);
#ifdef __CPLUSPLUS
}
#endif