mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 19:48:38 -05:00 
			
		
		
		
	dll: refactor library.h into src/shared/minimal.h for reuse
This commit is contained in:
		| @@ -67,13 +67,11 @@ BOOL WINAPI DllMain(HINSTANCE Instance, DWORD Reason, PVOID Reserved) | ||||
|     return TRUE; | ||||
| } | ||||
|  | ||||
| /* see comments in library.h */ | ||||
| #if defined(WINFSP_DLL_NODEFAULTLIB) | ||||
| /* see comments in shared/minimal.h */ | ||||
| BOOL WINAPI _DllMainCRTStartup(HINSTANCE Instance, DWORD Reason, PVOID Reserved) | ||||
| { | ||||
|     return DllMain(Instance, Reason, Reserved); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| HRESULT WINAPI DllRegisterServer(VOID) | ||||
| { | ||||
|   | ||||
| @@ -19,8 +19,8 @@ | ||||
| #define WINFSP_DLL_LIBRARY_H_INCLUDED | ||||
|  | ||||
| #define WINFSP_DLL_INTERNAL | ||||
| #define WINFSP_DLL_NODEFAULTLIB | ||||
| #include <winfsp/winfsp.h> | ||||
| #include <shared/minimal.h> | ||||
| #include <strsafe.h> | ||||
|  | ||||
| #define LIBRARY_NAME                    "WinFsp" | ||||
| @@ -36,73 +36,6 @@ | ||||
| #define DEBUGLOGSD(fmt, SD)             ((void)0) | ||||
| #endif | ||||
|  | ||||
| static inline PVOID MemAlloc(SIZE_T Size) | ||||
| { | ||||
|     extern HANDLE ProcessHeap; | ||||
|     return HeapAlloc(ProcessHeap, 0, Size); | ||||
| } | ||||
| static inline VOID MemFree(PVOID Pointer) | ||||
| { | ||||
|     extern HANDLE ProcessHeap; | ||||
|     if (0 != Pointer) | ||||
|         HeapFree(ProcessHeap, 0, Pointer); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Define WINFSP_DLL_NODEFAULTLIB to eliminate dependency on the MSVCRT libraries. | ||||
|  * | ||||
|  * For this to work the following project settings must be set: | ||||
|  * - "C/C++ > General > SDL checks" must be empty (not "Yes" or "No"). | ||||
|  * - "C/C++ > Code Generation > Basic Runtime Checks" must be set to "Default" | ||||
|  * - "C/C++ > Code Generation > Security Check" must be disabled (/GS-). | ||||
|  * - "Linker > Input > Ignore All Default Libraries" must be "Yes". | ||||
|  */ | ||||
| #if defined(WINFSP_DLL_NODEFAULTLIB) | ||||
| #undef RtlFillMemory | ||||
| #undef RtlMoveMemory | ||||
| NTSYSAPI VOID NTAPI RtlFillMemory(VOID *Destination, DWORD Length, BYTE Fill); | ||||
| NTSYSAPI VOID NTAPI RtlMoveMemory(VOID *Destination, CONST VOID *Source, DWORD Length); | ||||
|  | ||||
| #pragma function(memcpy) | ||||
| #pragma function(memset) | ||||
| static inline | ||||
| void *memcpy(void *dst, const void *src, size_t siz) | ||||
| { | ||||
|     RtlMoveMemory(dst, src, (DWORD)siz); | ||||
|     return dst; | ||||
| } | ||||
| static inline | ||||
| void *memset(void *dst, int val, size_t siz) | ||||
| { | ||||
|     RtlFillMemory(dst, (DWORD)siz, val); | ||||
|     return dst; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| static FORCEINLINE | ||||
| VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry) | ||||
| { | ||||
|     PLIST_ENTRY Blink; | ||||
|  | ||||
|     Blink = ListHead->Blink; | ||||
|     Entry->Flink = ListHead; | ||||
|     Entry->Blink = Blink; | ||||
|     Blink->Flink = Entry; | ||||
|     ListHead->Blink = Entry; | ||||
| } | ||||
| static FORCEINLINE | ||||
| BOOLEAN RemoveEntryList(PLIST_ENTRY Entry) | ||||
| { | ||||
|     PLIST_ENTRY Blink; | ||||
|     PLIST_ENTRY Flink; | ||||
|  | ||||
|     Flink = Entry->Flink; | ||||
|     Blink = Entry->Blink; | ||||
|     Blink->Flink = Flink; | ||||
|     Flink->Blink = Blink; | ||||
|     return Flink == Blink; | ||||
| } | ||||
|  | ||||
| VOID FspNtStatusInitialize(BOOLEAN Dynamic); | ||||
| VOID FspNtStatusFinalize(BOOLEAN Dynamic); | ||||
| VOID FspEventLogInitialize(BOOLEAN Dynamic); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user