[1/6] ntoskrnl.exe: Add stubs
Alexander Morozov
amorozov at etersoft.ru
Tue Jul 22 03:53:00 CDT 2008
Add stubs which are necessary for ntoskrnl.exe tests.
-------------- next part --------------
From f2d1e4ff5e3f87d80e7157a459f15957de047c07 Mon Sep 17 00:00:00 2001
From: Alexander Morozov <amorozov at etersoft.ru>
Date: Mon, 21 Jul 2008 18:42:23 +0400
Subject: [PATCH] ntoskrnl.exe: Add stubs
---
dlls/ntoskrnl.exe/ntoskrnl.c | 108 +++++++++++++++++++++++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 18 +++---
include/ddk/wdm.h | 32 ++++++++++
3 files changed, 149 insertions(+), 9 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 564c55b..7d4b247 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -247,6 +247,35 @@ NTSTATUS wine_ntoskrnl_main_loop( HANDLE stop_event )
}
}
+
+/***********************************************************************
+ * IoInitializeIrp (NTOSKRNL.EXE.@)
+ */
+void WINAPI IoInitializeIrp( IRP *irp, USHORT size, CCHAR stack_size )
+{
+ FIXME( "%p, %u, %d\n", irp, size, stack_size );
+}
+
+
+/***********************************************************************
+ * IoAllocateIrp (NTOSKRNL.EXE.@)
+ */
+PIRP WINAPI IoAllocateIrp( CCHAR stack_size, BOOLEAN charge_quota )
+{
+ FIXME( "%d, %d\n", stack_size, charge_quota );
+ return NULL;
+}
+
+
+/***********************************************************************
+ * IoFreeIrp (NTOSKRNL.EXE.@)
+ */
+void WINAPI IoFreeIrp( IRP *irp )
+{
+ FIXME( "%p\n", irp );
+}
+
+
/***********************************************************************
* IoAllocateMdl (NTOSKRNL.EXE.@)
*/
@@ -268,6 +297,27 @@ PIO_WORKITEM WINAPI IoAllocateWorkItem( PDEVICE_OBJECT DeviceObject )
/***********************************************************************
+ * IoBuildDeviceIoControlRequest (NTOSKRNL.EXE.@)
+ */
+PIRP WINAPI IoBuildDeviceIoControlRequest( ULONG IoControlCode,
+ PDEVICE_OBJECT DeviceObject,
+ PVOID InputBuffer,
+ ULONG InputBufferLength,
+ PVOID OutputBuffer,
+ ULONG OutputBufferLength,
+ BOOLEAN InternalDeviceIoControl,
+ PKEVENT Event,
+ PIO_STATUS_BLOCK IoStatusBlock )
+{
+ FIXME( "%x, %p, %p, %u, %p, %u, %u, %p, %p\n",
+ IoControlCode, DeviceObject, InputBuffer, InputBufferLength,
+ OutputBuffer, OutputBufferLength, InternalDeviceIoControl,
+ Event, IoStatusBlock );
+ return NULL;
+}
+
+
+/***********************************************************************
* IoCreateDriver (NTOSKRNL.EXE.@)
*/
NTSTATUS WINAPI IoCreateDriver( UNICODE_STRING *name, PDRIVER_INITIALIZE init )
@@ -412,6 +462,31 @@ NTSTATUS WINAPI IoCreateSymbolicLink( UNICODE_STRING *name, UNICODE_STRING *targ
/***********************************************************************
+ * IoDeleteSymbolicLink (NTOSKRNL.EXE.@)
+ */
+NTSTATUS WINAPI IoDeleteSymbolicLink( UNICODE_STRING *name )
+{
+ FIXME( "%s\n", debugstr_us(name) );
+ return STATUS_SUCCESS;
+}
+
+
+/***********************************************************************
+ * IofCallDriver (NTOSKRNL.EXE.@)
+ */
+#ifdef DEFINE_FASTCALL2_ENTRYPOINT
+DEFINE_FASTCALL2_ENTRYPOINT( IofCallDriver )
+NTSTATUS WINAPI __regs_IofCallDriver( DEVICE_OBJECT *device, IRP *irp )
+#else
+NTSTATUS WINAPI IofCallDriver( DEVICE_OBJECT *device, IRP *irp )
+#endif
+{
+ FIXME( "%p %p\n", device, irp );
+ return STATUS_SUCCESS;
+}
+
+
+/***********************************************************************
* IofCompleteRequest (NTOSKRNL.EXE.@)
*/
#ifdef DEFINE_FASTCALL2_ENTRYPOINT
@@ -555,6 +630,27 @@ void WINAPI ExFreePoolWithTag( void *ptr, ULONG tag )
/***********************************************************************
+ * KeInitializeEvent (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeInitializeEvent( PRKEVENT Event, EVENT_TYPE Type,
+ BOOLEAN State )
+{
+ FIXME( "%p %u %u\n", Event, Type, State );
+}
+
+
+/***********************************************************************
+ * KeSetEvent (NTOSKRNL.EXE.@)
+ */
+LONG WINAPI KeSetEvent( PRKEVENT Event, KPRIORITY Increment,
+ BOOLEAN Wait )
+{
+ FIXME( "%p %d %d\n", Event, Increment, Wait );
+ return 0;
+}
+
+
+/***********************************************************************
* KeInitializeSpinLock (NTOSKRNL.EXE.@)
*/
void WINAPI KeInitializeSpinLock( PKSPIN_LOCK SpinLock )
@@ -646,6 +742,18 @@ ULONG WINAPI KeQueryTimeIncrement(void)
/***********************************************************************
+ * KeWaitForSingleObject (NTOSKRNL.EXE.@)
+ */
+NTSTATUS WINAPI KeWaitForSingleObject( PVOID Object, KWAIT_REASON WaitReason,
+ KPROCESSOR_MODE WaitMode, BOOLEAN Alertable,
+ PLARGE_INTEGER Timeout )
+{
+ FIXME( "%p %u %d %d %p\n", Object, WaitReason, WaitMode, Alertable, Timeout );
+ return STATUS_SUCCESS;
+}
+
+
+/***********************************************************************
* MmAllocateNonCachedMemory (NTOSKRNL.EXE.@)
*/
PVOID WINAPI MmAllocateNonCachedMemory( SIZE_T size )
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 0e7b8e8..95b5dca 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -39,7 +39,7 @@
@ stub IoReadPartitionTable
@ stub IoSetPartitionInformation
@ stub IoWritePartitionTable
-@ stub IofCallDriver
+@ stdcall -norelay IofCallDriver(ptr ptr)
@ stdcall -norelay IofCompleteRequest(ptr long)
@ stub KeAcquireInStackQueuedSpinLockAtDpcLevel
@ stub KeReleaseInStackQueuedSpinLockFromDpcLevel
@@ -311,7 +311,7 @@
@ stub IoAllocateController
@ stub IoAllocateDriverObjectExtension
@ stub IoAllocateErrorLogEntry
-@ stub IoAllocateIrp
+@ stdcall IoAllocateIrp(long long)
@ stdcall IoAllocateMdl(ptr long long long ptr)
@ stdcall IoAllocateWorkItem(ptr)
@ stub IoAssignResources
@@ -320,7 +320,7 @@
@ stub IoAttachDeviceToDeviceStack
@ stub IoAttachDeviceToDeviceStackSafe
@ stub IoBuildAsynchronousFsdRequest
-@ stub IoBuildDeviceIoControlRequest
+@ stdcall IoBuildDeviceIoControlRequest(long ptr ptr long ptr long long ptr ptr)
@ stub IoBuildPartialMdl
@ stub IoBuildSynchronousFsdRequest
@ stub IoCallDriver
@@ -355,7 +355,7 @@
@ stub IoDeleteController
@ stdcall IoDeleteDevice(ptr)
@ stdcall IoDeleteDriver(ptr)
-@ stub IoDeleteSymbolicLink
+@ stdcall IoDeleteSymbolicLink(ptr)
@ stub IoDetachDevice
@ stub IoDeviceHandlerObjectSize
@ stub IoDeviceHandlerObjectType
@@ -370,7 +370,7 @@
@ stub IoForwardIrpSynchronously
@ stub IoFreeController
@ stub IoFreeErrorLogEntry
-@ stub IoFreeIrp
+@ stdcall IoFreeIrp(ptr)
@ stub IoFreeMdl
@ stub IoFreeWorkItem
@ stub IoGetAttachedDevice
@@ -397,7 +397,7 @@
@ stub IoGetRequestorSessionId
@ stub IoGetStackLimits
@ stub IoGetTopLevelIrp
-@ stub IoInitializeIrp
+@ stdcall IoInitializeIrp(ptr long long)
@ stub IoInitializeRemoveLockEx
@ stub IoInitializeTimer
@ stub IoInvalidateDeviceRelations
@@ -546,7 +546,7 @@
@ stub KeInitializeApc
@ stub KeInitializeDeviceQueue
@ stub KeInitializeDpc
-@ stub KeInitializeEvent
+@ stdcall KeInitializeEvent(ptr long long)
@ stub KeInitializeInterrupt
@ stub KeInitializeMutant
@ stub KeInitializeMutex
@@ -607,7 +607,7 @@
@ stub KeSetAffinityThread
@ stub KeSetBasePriorityThread
@ stub KeSetDmaIoCoherency
-@ stub KeSetEvent
+@ stdcall KeSetEvent(ptr long long)
@ stub KeSetEventBoostPriority
@ stub KeSetIdealProcessorThread
@ stub KeSetImportanceDpc
@@ -629,7 +629,7 @@
@ stub KeUserModeCallback
@ stub KeWaitForMultipleObjects
@ stub KeWaitForMutexObject
-@ stub KeWaitForSingleObject
+@ stdcall KeWaitForSingleObject(ptr long long long ptr)
@ stub KiBugCheckData
@ stub KiCoprocessorError
@ stub KiDeliverApc
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 931a130..5563def 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -28,6 +28,8 @@
#define POINTER_ALIGNMENT
#endif
+typedef LONG KPRIORITY;
+
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
struct _KDPC;
@@ -84,6 +86,36 @@ typedef struct _KDEVICE_QUEUE {
BOOLEAN Busy;
} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
+typedef enum _KWAIT_REASON
+{
+ Executive,
+ FreePage,
+ PageIn,
+ PoolAllocation,
+ DelayExecution,
+ Suspended,
+ UserRequest,
+ WrExecutive,
+ WrFreePage,
+ WrPageIn,
+ WrDelayExecution,
+ WrSuspended,
+ WrUserRequest,
+ WrQueue,
+ WrLpcReceive,
+ WrLpcReply,
+ WrVirtualMemory,
+ WrPageOut,
+ WrRendezvous,
+ Spare2,
+ Spare3,
+ Spare4,
+ Spare5,
+ Spare6,
+ WrKernel,
+ MaximumWaitReason,
+} KWAIT_REASON;
+
typedef struct _IO_TIMER *PIO_TIMER;
typedef struct _ETHREAD *PETHREAD;
typedef struct _KTHREAD *PKTHREAD;
--
1.5.4.5.GIT
More information about the wine-patches
mailing list