mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 17:03:12 -05:00
dll: support /NODEFAULTLIB builds
This commit is contained in:
parent
825f4ed2ef
commit
99b4734d74
@ -109,6 +109,8 @@
|
|||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetFileName).map</MapFileName>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
@ -126,6 +128,8 @@
|
|||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetFileName).map</MapFileName>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
@ -147,6 +151,8 @@
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetFileName).map</MapFileName>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
@ -168,6 +174,8 @@
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)$(TargetFileName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(OutDir)$(TargetFileName).map</MapFileName>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -21,3 +21,11 @@ BOOL WINAPI DllMain(HINSTANCE Instance, DWORD Reason, PVOID Reserved)
|
|||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* see comments in library.h */
|
||||||
|
#if defined(WINFSP_DLL_NODEFAULTLIB)
|
||||||
|
BOOL WINAPI _DllMainCRTStartup(HINSTANCE Instance, DWORD Reason, PVOID Reserved)
|
||||||
|
{
|
||||||
|
return DllMain(Instance, Reason, Reserved);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@ -41,4 +41,35 @@ static inline VOID MemFree(PVOID Pointer)
|
|||||||
HeapFree(ProcessHeap, 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
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -163,7 +163,8 @@ FSP_API NTSTATUS FspProduceResponse(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
FSP_API NTSTATUS FspProduceResponseWithStatus(FSP_FILE_SYSTEM *FileSystem,
|
FSP_API NTSTATUS FspProduceResponseWithStatus(FSP_FILE_SYSTEM *FileSystem,
|
||||||
FSP_FSCTL_TRANSACT_REQ *Request, NTSTATUS Result)
|
FSP_FSCTL_TRANSACT_REQ *Request, NTSTATUS Result)
|
||||||
{
|
{
|
||||||
FSP_FSCTL_TRANSACT_RSP Response = { 0 };
|
FSP_FSCTL_TRANSACT_RSP Response;
|
||||||
|
memset(&Response, 0, sizeof Response);
|
||||||
Response.Size = sizeof Response;
|
Response.Size = sizeof Response;
|
||||||
Response.Kind = Request->Kind;
|
Response.Kind = Request->Kind;
|
||||||
Response.Hint = Request->Hint;
|
Response.Hint = Request->Hint;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user