mirror of
https://github.com/bb107/MemoryModulePP
synced 2026-06-08 13:15:33 +00:00
add extern "C" for public api
This commit is contained in:
@@ -11,25 +11,29 @@ typedef HMODULE HMEMORYMODULE;
|
||||
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
|
||||
#endif
|
||||
|
||||
HMEMORYMODULE WINAPI LoadLibraryMemory(_In_ PVOID BufferAddress);
|
||||
extern "C" {
|
||||
|
||||
HMEMORYMODULE WINAPI LoadLibraryMemoryExA(
|
||||
_In_ PVOID BufferAddress,
|
||||
_In_ size_t Reserved,
|
||||
_In_opt_ LPCSTR DllBaseName,
|
||||
_In_opt_ LPCSTR DllFullName,
|
||||
_In_ DWORD Flags
|
||||
);
|
||||
HMEMORYMODULE WINAPI LoadLibraryMemory(_In_ PVOID BufferAddress);
|
||||
|
||||
HMEMORYMODULE WINAPI LoadLibraryMemoryExW(
|
||||
_In_ PVOID BufferAddress,
|
||||
_In_ size_t Reserved,
|
||||
_In_opt_ LPCWSTR DllBaseName,
|
||||
_In_opt_ LPCWSTR DllFullName,
|
||||
_In_ DWORD Flags
|
||||
);
|
||||
HMEMORYMODULE WINAPI LoadLibraryMemoryExA(
|
||||
_In_ PVOID BufferAddress,
|
||||
_In_ size_t Reserved,
|
||||
_In_opt_ LPCSTR DllBaseName,
|
||||
_In_opt_ LPCSTR DllFullName,
|
||||
_In_ DWORD Flags
|
||||
);
|
||||
|
||||
BOOL WINAPI FreeLibraryMemory(_In_ HMEMORYMODULE hMemoryModule);
|
||||
HMEMORYMODULE WINAPI LoadLibraryMemoryExW(
|
||||
_In_ PVOID BufferAddress,
|
||||
_In_ size_t Reserved,
|
||||
_In_opt_ LPCWSTR DllBaseName,
|
||||
_In_opt_ LPCWSTR DllFullName,
|
||||
_In_ DWORD Flags
|
||||
);
|
||||
|
||||
BOOL WINAPI FreeLibraryMemory(_In_ HMEMORYMODULE hMemoryModule);
|
||||
|
||||
}
|
||||
|
||||
#define NtLoadDllMemory LdrLoadDllMemory
|
||||
#define NtLoadDllMemoryExA LdrLoadDllMemoryExA
|
||||
|
||||
+17
-17
@@ -9,9 +9,6 @@
|
||||
#define MEMORY_FEATURE_LDRP_RELEASE_TLS_ENTRY 0x00000040
|
||||
#define MEMORY_FEATURE_ALL 0x0000007f
|
||||
|
||||
//Get the implementation of the currently running operating system.
|
||||
NTSTATUS NTAPI LdrQuerySystemMemoryModuleFeatures(_Out_ PDWORD pFeatures);
|
||||
|
||||
|
||||
/*
|
||||
LdrLoadDllMemoryEx dwFlags
|
||||
@@ -47,21 +44,24 @@ NTSTATUS NTAPI LdrQuerySystemMemoryModuleFeatures(_Out_ PDWORD pFeatures);
|
||||
//Hook for dotnet dlls
|
||||
#define LOAD_FLAGS_HOOK_DOT_NET 0x00000010
|
||||
|
||||
|
||||
NTSTATUS NTAPI LdrLoadDllMemoryExW(
|
||||
_Out_ HMEMORYMODULE* BaseAddress, // Output module base address
|
||||
_Out_opt_ PVOID* LdrEntry, // Receive a pointer to the LDR node of the module
|
||||
_In_ DWORD dwFlags, // Flags
|
||||
_In_ LPVOID BufferAddress, // Pointer to the dll file data buffer
|
||||
_In_ size_t Reserved, // Reserved parameter, must be 0
|
||||
_In_opt_ LPCWSTR DllName, // Module file name
|
||||
_In_opt_ LPCWSTR DllFullName // Module file full path
|
||||
);
|
||||
|
||||
//Unload modules previously loaded from memory
|
||||
NTSTATUS NTAPI LdrUnloadDllMemory(_In_ HMEMORYMODULE BaseAddress);
|
||||
|
||||
extern "C" {
|
||||
|
||||
//Get the implementation of the currently running operating system.
|
||||
NTSTATUS NTAPI LdrQuerySystemMemoryModuleFeatures(_Out_ PDWORD pFeatures);
|
||||
|
||||
NTSTATUS NTAPI LdrLoadDllMemoryExW(
|
||||
_Out_ HMEMORYMODULE* BaseAddress, // Output module base address
|
||||
_Out_opt_ PVOID* LdrEntry, // Receive a pointer to the LDR node of the module
|
||||
_In_ DWORD dwFlags, // Flags
|
||||
_In_ LPVOID BufferAddress, // Pointer to the dll file data buffer
|
||||
_In_ size_t Reserved, // Reserved parameter, must be 0
|
||||
_In_opt_ LPCWSTR DllName, // Module file name
|
||||
_In_opt_ LPCWSTR DllFullName // Module file full path
|
||||
);
|
||||
|
||||
//Unload modules previously loaded from memory
|
||||
NTSTATUS NTAPI LdrUnloadDllMemory(_In_ HMEMORYMODULE BaseAddress);
|
||||
|
||||
__declspec(noreturn) VOID NTAPI LdrUnloadDllMemoryAndExitThread(
|
||||
_In_ HMEMORYMODULE BaseAddress,
|
||||
_In_ DWORD dwExitCode
|
||||
|
||||
Reference in New Issue
Block a user