Alexandre Julliard : ntoskrnl.exe:
Implemented PsGetVersion and added stubs for a couple of other Ps
functions .
Alexandre Julliard
julliard at wine.codeweavers.com
Thu May 17 06:42:26 CDT 2007
Module: wine
Branch: master
Commit: e0d5dbaeb86a39ef6d54f00935bbe4ddbe32eaad
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e0d5dbaeb86a39ef6d54f00935bbe4ddbe32eaad
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu May 17 09:49:28 2007 +0200
ntoskrnl.exe: Implemented PsGetVersion and added stubs for a couple of other Ps functions.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 54 +++++++++++++++++++++++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 8 ++--
2 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index b14fca5..3380434 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -51,6 +51,7 @@ typedef struct _KSERVICE_TABLE_DESCRIPTOR
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[4];
+typedef void (WINAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)(HANDLE,HANDLE,BOOLEAN);
#ifdef __i386__
#define DEFINE_FASTCALL1_ENTRYPOINT( name ) \
@@ -416,6 +417,59 @@ void WINAPI MmFreeNonCachedMemory( void *addr, SIZE_T size )
}
+/***********************************************************************
+ * PsGetCurrentProcessId (NTOSKRNL.EXE.@)
+ */
+HANDLE WINAPI PsGetCurrentProcessId(void)
+{
+ return (HANDLE)GetCurrentProcessId(); /* FIXME: not quite right... */
+}
+
+
+/***********************************************************************
+ * PsGetCurrentThreadId (NTOSKRNL.EXE.@)
+ */
+HANDLE WINAPI PsGetCurrentThreadId(void)
+{
+ return (HANDLE)GetCurrentThreadId(); /* FIXME: not quite right... */
+}
+
+
+/***********************************************************************
+ * PsGetVersion (NTOSKRNL.EXE.@)
+ */
+BOOLEAN WINAPI PsGetVersion(ULONG *major, ULONG *minor, ULONG *build, UNICODE_STRING *version )
+{
+ RTL_OSVERSIONINFOEXW info;
+
+ RtlGetVersion( &info );
+ if (major) *major = info.dwMajorVersion;
+ if (minor) *minor = info.dwMinorVersion;
+ if (build) *build = info.dwBuildNumber;
+
+ if (version)
+ {
+#if 0 /* FIXME: GameGuard passes an uninitialized pointer in version->Buffer */
+ size_t len = min( strlenW(info.szCSDVersion)*sizeof(WCHAR), version->MaximumLength );
+ memcpy( version->Buffer, info.szCSDVersion, len );
+ if (len < version->MaximumLength) version->Buffer[len / sizeof(WCHAR)] = 0;
+ version->Length = len;
+#endif
+ }
+ return TRUE;
+}
+
+
+/***********************************************************************
+ * PsSetCreateProcessNotifyRoutine (NTOSKRNL.EXE.@)
+ */
+NTSTATUS WINAPI PsSetCreateProcessNotifyRoutine( PCREATE_PROCESS_NOTIFY_ROUTINE callback, BOOLEAN remove )
+{
+ FIXME( "stub: %p %d\n", callback, remove );
+ return STATUS_SUCCESS;
+}
+
+
/*****************************************************
* DllMain
*/
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 9aaa01e..2a89b33 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -850,10 +850,10 @@
@ stub PsEstablishWin32Callouts
@ stub PsGetContextThread
@ stub PsGetCurrentProcess
-@ stub PsGetCurrentProcessId
+@ stdcall PsGetCurrentProcessId()
@ stub PsGetCurrentProcessSessionId
@ stub PsGetCurrentThread
-@ stub PsGetCurrentThreadId
+@ stdcall PsGetCurrentThreadId()
@ stub PsGetCurrentThreadPreviousMode
@ stub PsGetCurrentThreadStackBase
@ stub PsGetCurrentThreadStackLimit
@@ -884,7 +884,7 @@
@ stub PsGetThreadSessionId
@ stub PsGetThreadTeb
@ stub PsGetThreadWin32Thread
-@ stub PsGetVersion
+@ stdcall PsGetVersion(ptr ptr ptr ptr)
@ stub PsImpersonateClient
@ stub PsInitialSystemProcess
@ stub PsIsProcessBeingDebugged
@@ -907,7 +907,7 @@
@ stub PsRevertThreadToSelf
@ stub PsRevertToSelf
@ stub PsSetContextThread
-@ stub PsSetCreateProcessNotifyRoutine
+@ stdcall PsSetCreateProcessNotifyRoutine(ptr long)
@ stub PsSetCreateThreadNotifyRoutine
@ stub PsSetJobUIRestrictionsClass
@ stub PsSetLegoNotifyRoutine
More information about the wine-cvs
mailing list