mirror of
				https://github.com/bobranten/Ext4Fsd.git
				synced 2025-10-30 13:28:31 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			129 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _EXT2_SRV_INCLUDE_
 | |
| #define _EXT2_SRV_INCLUDE_
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <time.h>
 | |
| #include <stdlib.h>
 | |
| #include <tchar.h>
 | |
| #include <windows.h>
 | |
| #include <crtdbg.h>
 | |
| #include <process.h>
 | |
| #include <WtsApi32.h>
 | |
| #include <dbt.h>
 | |
| #include <shellapi.h>
 | |
| 
 | |
| /*
 | |
|  * global defintions
 | |
|  */
 | |
| 
 | |
| #define CL_ASSERT(cond) do {switch('x') {case (cond): case 0: break;}} while (0)
 | |
| 
 | |
| #define DEBUG(...)  do {} while(0)
 | |
| 
 | |
| /*
 | |
|  * resources
 | |
|  */
 | |
| 
 | |
| #define IDI_MAINFRAME  101
 | |
| 
 | |
| /*
 | |
|  * global defintions
 | |
|  */
 | |
| 
 | |
| #ifdef _DEBUG
 | |
| 
 | |
| #define EXT2_BREAK()    DebugBreak()
 | |
| #define EXT2_ASSERT(X)  _ASSERT(X)
 | |
| 
 | |
| #else
 | |
| 
 | |
| #define EXT2_BREAK()    do {} while(0)
 | |
| #define EXT2_ASSERT(X)  do {} while(0)
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * log filter level
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define EXT2_LOG_CONSOLE        (0x80000000)	/* print to screen */
 | |
| #define EXT2_LOG_ERROR          (0x00000001)	/* critical messagre */
 | |
| #define EXT2_LOG_MESSAGE        (0x00000002)	/* information */
 | |
| 
 | |
| #define EXT2_LOG_DUMP           (0x40000002)	/* dump and message*/
 | |
| 
 | |
| 
 | |
| void Ext2Log(DWORD ll, char *fn, int ln, char *format, ... );
 | |
| 
 | |
| /*
 | |
|  * message / error log
 | |
|  */
 | |
| #define MsgDump(F, ...)                                             \
 | |
|     do {                                                            \
 | |
|         Ext2Log(EXT2_LOG_DUMP, __FUNCTION__, __LINE__,              \
 | |
|                 ##F, ##__VA_ARGS__);                                \
 | |
|     } while(0)
 | |
| 
 | |
| #define MsgLog(F, ...)                                              \
 | |
|     do {                                                            \
 | |
|         Ext2Log(EXT2_LOG_MESSAGE, __FUNCTION__, __LINE__,           \
 | |
|                 ##F, ##__VA_ARGS__);                                \
 | |
|     } while(0)
 | |
| 
 | |
| 
 | |
| #define ErrLog(F, ...)                                              \
 | |
|     do {                                                            \
 | |
|         Ext2Log(EXT2_LOG_ERROR, __FUNCTION__, __LINE__,             \
 | |
|                 ##F, ##__VA_ARGS__);                                \
 | |
|     } while(0)
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * structure definitions
 | |
|  */
 | |
| 
 | |
| 
 | |
| typedef struct _EXT2_PIPE {
 | |
|     struct _EXT2_PIPE  *l;          /* next pipe handle */
 | |
|     HANDLE              p;          /* pipe handle */
 | |
|     HANDLE              e;          /* event handle */
 | |
|     HANDLE              q;          /* quiting */
 | |
|     OVERLAPPED          o;          /* overlap info */
 | |
|     volatile BOOL       s;          /* stop flag */
 | |
| } EXT2_PIPE, *PEXT2_PIPE;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Ext2Pipe.cpp
 | |
|  */
 | |
| 
 | |
| 
 | |
| DWORD Ext2StartPipeSrv();
 | |
| VOID  Ext2StopPipeSrv();
 | |
| 
 | |
| INT   Ext2NotifyUser(TCHAR *task, ULONG pid);
 | |
| 
 | |
| /*
 | |
|  * Mount.cpp (native API)
 | |
|  */
 | |
| 
 | |
| BOOL Ext2EnablePrivilege(LPCTSTR lpszPrivilegeName);
 | |
| 
 | |
| VOID
 | |
| Ext2DrvNotify(TCHAR drive, int add);
 | |
| 
 | |
| BOOL Ext2AssignDrvLetter(TCHAR *dev, TCHAR drv);
 | |
| BOOL Ext2RemoveDrvLetter(TCHAR drive);
 | |
| 
 | |
| int Ext2StartUserTask(TCHAR *usr, TCHAR *srv, DWORD sid, BOOL);
 | |
| INT Ext2StartMgrAsUser();
 | |
| 
 | |
| /*
 | |
|  * Ext2Srv.cpp
 | |
|  */
 | |
| 
 | |
| VOID Ext2DrivesChangeNotify(BOOLEAN bArrival);
 | |
| 
 | |
| #endif /* _EXT2_SRV_INCLUDE_ */
 |