source: trunk/src/kernel32/hmthread.h@ 22018

Last change on this file since 22018 was 21302, checked in by ydario, 16 years ago

Kernel32 updates.

File size: 3.1 KB
Line 
1/* $Id: hmthread.h,v 1.5 2003-02-04 11:29:01 sandervl Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 *
6 * Win32 thread handle class
7 *
8 * Copyright 2000 Sander van Leeuwen (sandervl@xs4all.nl)
9 *
10 */
11
12#ifndef __HMTHREAD_H__
13#define __HMTHREAD_H__
14
15#include "HMDevice.h"
16#include "HMOpen32.h"
17
18#define THREAD_TERMINATED 0
19#define THREAD_ALIVE 1
20
21#define SETTHREADCONTEXT_INVALID_LOCKOPCODE 0x90F0 //invalid lock sequence
22
23class HMDeviceThreadClass : public HMDeviceOpen32Class
24{
25public:
26 HMDeviceThreadClass(LPCSTR lpDeviceName) : HMDeviceOpen32Class(lpDeviceName) {}
27
28 virtual HANDLE CreateThread(PHMHANDLEDATA pHMHandleData,
29 LPSECURITY_ATTRIBUTES lpsa,
30 DWORD cbStack,
31 LPTHREAD_START_ROUTINE lpStartAddr,
32 LPVOID lpvThreadParm,
33 DWORD fdwCreate,
34 LPDWORD lpIDThread,
35 BOOL fRegisterThread);
36
37 /* this is a handler method for calls to WaitForSingleObject */
38 virtual DWORD WaitForSingleObject(PHMHANDLEDATA pHMHandleData,
39 DWORD dwTimeout);
40
41 /* this is a handler method for calls to WaitForSingleObjectEx */
42 virtual DWORD WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData,
43 DWORD dwTimeout,
44 BOOL fAlertable);
45
46 virtual INT GetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
47 virtual DWORD SuspendThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
48 virtual BOOL SetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData, int priority);
49
50 virtual BOOL DuplicateHandle(HANDLE srchandle, PHMHANDLEDATA pHMHandleData, HANDLE srcprocess,
51 PHMHANDLEDATA pHMSrcHandle,
52 HANDLE destprocess,
53 DWORD fdwAccess,
54 BOOL fInherit,
55 DWORD fdwOptions,
56 DWORD fdwOdinOptions);
57
58 virtual BOOL GetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext);
59 virtual BOOL SetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext);
60
61 virtual BOOL GetThreadTimes(HANDLE hThread, PHMHANDLEDATA pHMHandleData,
62 LPFILETIME lpCreationTime, LPFILETIME lpExitTime,
63 LPFILETIME lpKernelTime, LPFILETIME lpUserTime);
64
65 virtual BOOL TerminateThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, DWORD exitcode);
66 virtual DWORD ResumeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
67 virtual BOOL GetExitCodeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode);
68 virtual BOOL SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
69
70 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
71};
72
73
74#endif // __HMTHREAD_H__
Note: See TracBrowser for help on using the repository browser.