Implemented OpenThread on top of NtOpenThread.

This commit is contained in:
Eric Pouech 2005-06-27 12:03:56 +00:00 committed by Alexandre Julliard
parent 803c8d9693
commit 0d2ea2a91c
1 changed files with 19 additions and 8 deletions

View File

@ -200,16 +200,27 @@ HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE
*/
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;
}