Implemented OpenThread on top of NtOpenThread.

diff --git a/dlls/kernel/thread.c b/dlls/kernel/thread.c
index be87668..5ddbb33 100644
--- a/dlls/kernel/thread.c
+++ b/dlls/kernel/thread.c
@@ -200,16 +200,27 @@
  */
 HANDLE WINAPI OpenThread( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwThreadId )
 {
-    HANDLE ret = 0;
-    SERVER_START_REQ( open_thread )
+    NTSTATUS status;
+    HANDLE handle;
+    OBJECT_ATTRIBUTES attr;
+    CLIENT_ID cid;
+
+    attr.Length = sizeof(attr);
+    attr.RootDirectory = 0;
+    attr.Attributes = bInheritHandle ? OBJ_INHERIT : 0;
+    attr.ObjectName = NULL;
+    attr.SecurityDescriptor = NULL;
+    attr.SecurityQualityOfService = NULL;
+
+    cid.UniqueProcess = 0; /* FIXME */
+    cid.UniqueThread = (HANDLE)dwThreadId;
+    status = NtOpenThread( &handle, dwDesiredAccess, &attr, &cid );
+    if (status)
     {
-        req->tid     = dwThreadId;
-        req->access  = dwDesiredAccess;
-        req->inherit = bInheritHandle;
-        if (!wine_server_call_err( req )) ret = reply->handle;
+        SetLastError( RtlNtStatusToDosError(status) );
+        handle = 0;
     }
-    SERVER_END_REQ;
-    return ret;
+    return handle;
 }