[PATCH 04/10] ntdll: Add stubs for LdrAddLoadAsDataTable and LdrRemoveLoadAsDataTable.

Mark Harmstone mark at harmstone.com
Sat Mar 27 14:47:31 CDT 2021


Signed-off-by: Mark Harmstone <mark at 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);
-- 
2.26.3




More information about the wine-devel mailing list