Added patch to implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe.

This commit is contained in:
Sebastian Lackner
2015-02-08 17:44:07 +01:00
parent cb402d63de
commit 28fc684ff9
10 changed files with 92 additions and 28 deletions

View File

@@ -0,0 +1,35 @@
From 0257e41671d17f7875cab2cdb0ae9fc3e7b071a8 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 27 Jan 2015 14:50:34 +0100
Subject: include: Remove several duplicate definitions from ntdef.h.
FIXME: Should they removed from winternl.h instead? Whats the proper way
to use both include files at the same time?
---
include/ntdef.h | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/include/ntdef.h b/include/ntdef.h
index 83ecffd..8b35cef 100644
--- a/include/ntdef.h
+++ b/include/ntdef.h
@@ -23,16 +23,6 @@
extern "C" {
#endif
-typedef enum _EVENT_TYPE {
- NotificationEvent,
- SynchronizationEvent
-} EVENT_TYPE;
-
-typedef enum _TIMER_TYPE {
- NotificationTimer,
- SynchronizationTimer
-} TIMER_TYPE;
-
typedef enum _WAIT_TYPE {
WaitAll,
WaitAny,
--
2.2.1

View File

@@ -0,0 +1,58 @@
From b3df25d2fc4e83fbd018c56c95f627a29a777429 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 24 Dec 2014 15:35:23 -0600
Subject: ntoskrnl.exe: add KeWaitForMultipleObjects stub
---
dlls/ntoskrnl.exe/ntoskrnl.c | 14 ++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index af1626d..807a172 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -29,6 +29,7 @@
#include "ntstatus.h"
#define WIN32_NO_STATUS
+#include "ntdef.h"
#include "windef.h"
#include "winternl.h"
#include "excpt.h"
@@ -1480,6 +1481,19 @@ NTSTATUS WINAPI KeWaitForSingleObject(PVOID Object,
}
/***********************************************************************
+ * KeWaitForMultipleObjects (NTOSKRNL.EXE.@)
+ */
+NTSTATUS WINAPI KeWaitForMultipleObjects(ULONG Count, PVOID Object[], WAIT_TYPE WaitType,
+ KWAIT_REASON WaitReason, KPROCESSOR_MODE WaitMode,
+ BOOLEAN Alertable, PLARGE_INTEGER Timeout,
+ PKWAIT_BLOCK WaitBlockArray)
+{
+ FIXME( "stub: %u, %p, %d, %d, %d, %d, %p, %p\n", Count, Object, WaitType, WaitReason, WaitMode,
+ Alertable, Timeout, WaitBlockArray );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/***********************************************************************
* IoRegisterFileSystem (NTOSKRNL.EXE.@)
*/
VOID WINAPI IoRegisterFileSystem(PDEVICE_OBJECT DeviceObject)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index b824250..720ce3e 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -627,7 +627,7 @@
@ stub KeUpdateRunTime
@ stub KeUpdateSystemTime
@ stub KeUserModeCallback
-@ stub KeWaitForMultipleObjects
+@ stdcall KeWaitForMultipleObjects(long ptr long long long long ptr ptr)
@ stdcall KeWaitForMutexObject(ptr long long long ptr)
@ stdcall KeWaitForSingleObject(ptr long long long ptr)
@ stub KiBugCheckData
--
2.2.1

View File

@@ -0,0 +1,59 @@
From d7911933e870e44358ae93c81f13020af49fecf4 Mon Sep 17 00:00:00 2001
From: Alexander Morozov <amorozov@etersoft.ru>
Date: Thu, 29 Jan 2015 23:23:13 +0100
Subject: ntoskrnl.exe: Add stub for IoGetAttachedDeviceReference.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 9 +++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
include/ddk/wdm.h | 1 +
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index cdc5305..edd83de 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -837,6 +837,15 @@ NTSTATUS WINAPI IofCallDriver( DEVICE_OBJECT *device, IRP *irp )
return IoCallDriver( device, irp );
}
+/***********************************************************************
+ * IoGetAttachedDeviceReference (NTOSKRNL.EXE.@)
+ */
+PDEVICE_OBJECT WINAPI IoGetAttachedDeviceReference(PDEVICE_OBJECT obj)
+{
+ FIXME("(%p): stub\n", obj);
+
+ return obj;
+}
/***********************************************************************
* IoGetRelatedDeviceObject (NTOSKRNL.EXE.@)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 11d1c62..52c7fbf 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -374,7 +374,7 @@
@ stdcall IoFreeMdl(ptr)
@ stub IoFreeWorkItem
@ stdcall IoGetAttachedDevice(ptr)
-@ stub IoGetAttachedDeviceReference
+@ stdcall IoGetAttachedDeviceReference(ptr)
@ stub IoGetBaseFileSystemDeviceObject
@ stub IoGetBootDiskInformation
@ stdcall IoGetConfigurationInformation()
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index e4f693a..121ca45 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1208,6 +1208,7 @@ void WINAPI IoDeleteDevice(DEVICE_OBJECT*);
void WINAPI IoDeleteDriver(DRIVER_OBJECT*);
NTSTATUS WINAPI IoDeleteSymbolicLink(UNICODE_STRING*);
void WINAPI IoFreeIrp(IRP*);
+PDEVICE_OBJECT WINAPI IoGetAttachedDeviceReference(PDEVICE_OBJECT);
PEPROCESS WINAPI IoGetCurrentProcess(void);
NTSTATUS WINAPI IoGetDeviceInterfaces(const GUID*,PDEVICE_OBJECT,ULONG,PWSTR*);
NTSTATUS WINAPI IoGetDeviceObjectPointer(UNICODE_STRING*,ACCESS_MASK,PFILE_OBJECT*,PDEVICE_OBJECT*);
--
2.2.2

View File

@@ -0,0 +1,72 @@
From f52a9242c2cbe9e0efe49d1d3e17d37ceedf9557 Mon Sep 17 00:00:00 2001
From: Alexander Morozov <amorozov@etersoft.ru>
Date: Thu, 29 Jan 2015 23:39:18 +0100
Subject: ntoskrnl.exe: Add stubs for ExAcquireFastMutexUnsafe and
ExReleaseFastMutexUnsafe.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 28 ++++++++++++++++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 4 ++--
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index edd83de..d33fe6f 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -293,6 +293,34 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
/***********************************************************************
+ * ExAcquireFastMutexUnsafe (NTOSKRNL.EXE.@)
+ */
+#ifdef DEFINE_FASTCALL1_ENTRYPOINT
+DEFINE_FASTCALL1_ENTRYPOINT(ExAcquireFastMutexUnsafe)
+void WINAPI __regs_ExAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex)
+#else
+void WINAPI ExAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex)
+#endif
+{
+ FIXME("(%p): stub\n", FastMutex);
+}
+
+
+/***********************************************************************
+ * ExReleaseFastMutexUnsafe (NTOSKRNL.EXE.@)
+ */
+#ifdef DEFINE_FASTCALL1_ENTRYPOINT
+DEFINE_FASTCALL1_ENTRYPOINT(ExReleaseFastMutexUnsafe)
+void WINAPI __regs_ExReleaseFastMutexUnsafe(PFAST_MUTEX FastMutex)
+#else
+void WINAPI ExReleaseFastMutexUnsafe(PFAST_MUTEX FastMutex)
+#endif
+{
+ FIXME("(%p): stub\n", FastMutex);
+}
+
+
+/***********************************************************************
* IoAcquireCancelSpinLock (NTOSKRNL.EXE.@)
*/
void WINAPI IoAcquireCancelSpinLock(PKIRQL irql)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 52c7fbf..2f08945 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -1,4 +1,4 @@
-@ stub ExAcquireFastMutexUnsafe
+@ stdcall -norelay ExAcquireFastMutexUnsafe(ptr)
@ stub ExAcquireRundownProtection
@ stub ExAcquireRundownProtectionEx
@ stub ExInitializeRundownProtection
@@ -8,7 +8,7 @@
@ stub ExInterlockedPopEntrySList
@ stub ExInterlockedPushEntrySList
@ stub ExReInitializeRundownProtection
-@ stub ExReleaseFastMutexUnsafe
+@ stdcall -norelay ExReleaseFastMutexUnsafe(ptr)
@ stub ExReleaseResourceLite
@ stub ExReleaseRundownProtection
@ stub ExReleaseRundownProtectionEx
--
2.2.2

View File

@@ -0,0 +1,3 @@
Fixes: Add stub for ntoskrnl.KeWaitForMultipleObjects
Fixes: Implement stub for ntoskrnl.IoGetAttachedDeviceReference
Fixes: Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe