Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/mui.c | 28 ++++++++++++++++++++++++++++ dlls/ntdll/ntdll.spec | 2 ++ include/winternl.h | 2 ++ 3 files changed, 32 insertions(+)
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index e27a1fba1b8..36b1af72591 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -20,6 +20,8 @@
#include <stdarg.h>
+#include "ntstatus.h" +#define WIN32_NO_STATUS #include "winternl.h" #include "wine/debug.h"
@@ -510,3 +512,29 @@ BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string )
return FALSE; } + +/*********************************************************************** + * LdrAddLoadAsDataTable (NTDLL.@) + * + * Called when a data-only PE image is mapped. + */ +NTSTATUS NTAPI LdrAddLoadAsDataTable( PVOID module, PWSTR file_path, SIZE_T size, HANDLE handle ) +{ + FIXME("(%p, %s, %lx, %p)\n", module, debugstr_w(file_path), size, handle); + + return STATUS_NOT_IMPLEMENTED; +} + +/*********************************************************************** + * LdrRemoveLoadAsDataTable (NTDLL.@) + * + * Called when a PE image is unloaded, that had been mapped for data + * access only. + */ +NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module, PSIZE_T size, + ULONG flags ) +{ + FIXME("(%p, %p, %p, %x)\n", init_module, base_module, size, flags); + + return STATUS_NOT_IMPLEMENTED; +} diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index d27aaf1da58..11a233d4e9b 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -73,6 +73,7 @@ # @ stub LdrAccessOutOfProcessResource @ stdcall LdrAccessResource(long ptr ptr ptr) @ stdcall LdrAddDllDirectory(ptr ptr) +@ stdcall LdrAddLoadAsDataTable(ptr ptr long ptr) @ stdcall LdrAddRefDll(long ptr) # @ stub LdrAlternateResourcesEnabled # @ stub LdrCreateOutOfProcessImage @@ -102,6 +103,7 @@ @ stdcall LdrQueryProcessModuleInformation(ptr long ptr) @ stdcall LdrRegisterDllNotification(long ptr ptr ptr) @ stdcall LdrRemoveDllDirectory(ptr) +@ stdcall LdrRemoveLoadAsDataTable(ptr ptr ptr long) @ stdcall LdrResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long) @ stub LdrSetAppCompatDllRedirectionCallback @ stdcall LdrSetDefaultDllDirectories(long) diff --git a/include/winternl.h b/include/winternl.h index fcdedaec8aa..a14feba0a8a 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -3444,6 +3444,7 @@ NTSYSAPI NTSTATUS WINAPI DbgUiWaitStateChange(DBGUI_WAIT_STATE_CHANGE*,LARGE_IN NTSYSAPI void WINAPI DbgUserBreakPoint(void); NTSYSAPI NTSTATUS WINAPI LdrAccessResource(HMODULE,const IMAGE_RESOURCE_DATA_ENTRY*,void**,PULONG); NTSYSAPI NTSTATUS WINAPI LdrAddDllDirectory(const UNICODE_STRING*,void**); +NTSYSAPI NTSTATUS WINAPI LdrAddLoadAsDataTable(PVOID, PWSTR, SIZE_T, HANDLE); NTSYSAPI NTSTATUS WINAPI LdrAddRefDll(ULONG,HMODULE); NTSYSAPI NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE); NTSYSAPI NTSTATUS WINAPI LdrFindEntryForAddress(const void*, PLDR_DATA_TABLE_ENTRY*); @@ -3460,6 +3461,7 @@ NTSYSAPI NTSTATUS WINAPI LdrQueryImageFileExecutionOptions(const UNICODE_STRING NTSYSAPI NTSTATUS WINAPI LdrQueryProcessModuleInformation(SYSTEM_MODULE_INFORMATION*, ULONG, ULONG*); NTSYSAPI NTSTATUS WINAPI LdrRegisterDllNotification(ULONG,PLDR_DLL_NOTIFICATION_FUNCTION,void*,void**); NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*); +NTSYSAPI NTSTATUS WINAPI LdrRemoveLoadAsDataTable(PVOID, PVOID*, PSIZE_T, ULONG); NTSYSAPI NTSTATUS WINAPI LdrSetDefaultDllDirectories(ULONG); NTSYSAPI NTSTATUS WINAPI LdrSetDllDirectory(const UNICODE_STRING*); NTSYSAPI void WINAPI LdrShutdownProcess(void);