From 16d5776424063d794c42609a06d3a010d191dee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 6 Jun 2017 21:08:51 +0200 Subject: ntoskrnl.exe: Implement NtBuildNumber. --- dlls/ntoskrnl.exe/ntoskrnl.c | 11 +++++++++-- dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 9332c3ef2a6..0a5c22fc8c0 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -52,6 +52,7 @@ WINE_DECLARE_DEBUG_CHANNEL(plugplay); BOOLEAN KdDebuggerEnabled = FALSE; ULONG InitSafeBootMode = 0; +USHORT NtBuildNumber = 0; extern LONG CALLBACK vectored_handler( EXCEPTION_POINTERS *ptrs ); @@ -2657,6 +2658,13 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, return STATUS_NOT_IMPLEMENTED; } +static void ntoskrnl_init(void) +{ + LARGE_INTEGER count; + + KeQueryTickCount( &count ); /* initialize the global KeTickCount */ + NtBuildNumber = NtCurrentTeb()->Peb->OSBuildNumber; +} /***************************************************** * DllMain @@ -2664,7 +2672,6 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) { static void *handler; - LARGE_INTEGER count; switch(reason) { @@ -2673,7 +2680,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) #if defined(__i386__) || defined(__x86_64__) handler = RtlAddVectoredExceptionHandler( TRUE, vectored_handler ); #endif - KeQueryTickCount( &count ); /* initialize the global KeTickCount */ + ntoskrnl_init(); break; case DLL_PROCESS_DETACH: if (reserved) break; diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index aaa0d879219..1c862255dee 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -740,7 +740,7 @@ @ stdcall NtAllocateLocallyUniqueId(ptr) ntdll.NtAllocateLocallyUniqueId @ stdcall NtAllocateUuids(ptr ptr ptr ptr) ntdll.NtAllocateUuids @ stdcall NtAllocateVirtualMemory(long ptr long ptr long long) ntdll.NtAllocateVirtualMemory -@ stub NtBuildNumber +@ extern NtBuildNumber @ stdcall NtClose(long) ntdll.NtClose @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) ntdll.NtConnectPort @ stdcall NtCreateEvent(ptr long ptr long long) ntdll.NtCreateEvent -- 2.13.1