From 60cae6e2891205dc1a8df8c6876c881c1dfe980f Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Wed, 7 Sep 2005 13:25:35 +0000 Subject: [PATCH] Implemented kernel32:SetThreadPriority on top of ntdll's equivalent functions. --- dlls/kernel/thread.c | 19 +++++++++++-------- dlls/ntdll/thread.c | 17 +++++++++++++++-- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/dlls/kernel/thread.c b/dlls/kernel/thread.c index 1999473ce27..fb0ae75119c 100644 --- a/dlls/kernel/thread.c +++ b/dlls/kernel/thread.c @@ -416,16 +416,19 @@ BOOL WINAPI SetThreadPriority( HANDLE hthread, /* [in] Handle to thread */ INT priority) /* [in] Thread priority level */ { - BOOL ret; - SERVER_START_REQ( set_thread_info ) + DWORD prio = priority; + NTSTATUS status; + + status = NtSetInformationThread(hthread, ThreadBasePriority, + &prio, sizeof(prio)); + + if (status) { - req->handle = hthread; - req->priority = priority; - req->mask = SET_THREAD_INFO_PRIORITY; - ret = !wine_server_call_err( req ); + SetLastError( RtlNtStatusToDosError(status) ); + return FALSE; } - SERVER_END_REQ; - return ret; + + return TRUE; } diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 285f8874d95..a6b5d168bc4 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -634,12 +634,25 @@ NTSTATUS WINAPI NtSetInformationThread( HANDLE handle, THREADINFOCLASS class, status = wine_server_call( req ); } SERVER_END_REQ; - return status; } + return status; + case ThreadBasePriority: + { + const DWORD *pprio = data; + if (length != sizeof(DWORD)) return STATUS_INVALID_PARAMETER; + SERVER_START_REQ( set_thread_info ) + { + req->handle = handle; + req->priority = *pprio; + req->mask = SET_THREAD_INFO_PRIORITY; + status = wine_server_call( req ); + } + SERVER_END_REQ; + } + return status; case ThreadBasicInformation: case ThreadTimes: case ThreadPriority: - case ThreadBasePriority: case ThreadAffinityMask: case ThreadDescriptorTableEntry: case ThreadEnableAlignmentFaultFixup: -- 2.11.4.GIT