This commit enables arbitrary instrumentation points at the last instruction
[dyninst.git] / dyninstAPI / h / remoteDevice.h
1 /*\r
2  * Copyright (c) 1998 Barton P. Miller\r
3  * \r
4  * We provide the Paradyn Parallel Performance Tools (below\r
5  * described as Paradyn") on an AS IS basis, and do not warrant its\r
6  * validity or performance.  We reserve the right to update, modify,\r
7  * or discontinue this software at any time.  We shall have no\r
8  * obligation to supply such updates or modifications or any other\r
9  * form of support to you.\r
10  * \r
11  * This license is for research uses.  For such uses, there is no\r
12  * charge. We define "research use" to mean you may freely use it\r
13  * inside your organization for whatever purposes you see fit. But you\r
14  * may not re-distribute Paradyn or parts of Paradyn, in any form\r
15  * source or binary (including derivatives), electronic or otherwise,\r
16  * to any other organization or entity without our permission.\r
17  * \r
18  * (for other uses, please contact us at paradyn@cs.wisc.edu)\r
19  * \r
20  * All warranties, including without limitation, any warranty of\r
21  * merchantability or fitness for a particular purpose, are hereby\r
22  * excluded.\r
23  * \r
24  * By your use of Paradyn, you understand and agree that we (or any\r
25  * other person or entity with proprietary rights in Paradyn) are\r
26  * under no obligation to provide either maintenance services,\r
27  * update services, notices of latent defects, or correction of\r
28  * defects for Paradyn.\r
29  * \r
30  * Even if advised of the possibility of such damages, under no\r
31  * circumstances shall we (or any other person or entity with\r
32  * proprietary rights in the software licensed hereunder) be liable\r
33  * to you or any third party for direct, indirect, or consequential\r
34  * damages of any character regardless of type of action, including,\r
35  * without limitation, loss of profits, loss of use, loss of good\r
36  * will, or computer failure or malfunction.  You agree to indemnify\r
37  * us (and any other person or entity with proprietary rights in the\r
38  * software licensed hereunder) for any and all liability it may\r
39  * incur to third parties resulting from your use of Paradyn.\r
40  */\r
41 \r
42 \r
43 /* \r
44  * $Id: remoteDevice.h,v 1.1 2001/08/01 15:39:52 chadd Exp $\r
45  */\r
46 \r
47 \r
48 #include "common/h/ntHeaders.h"\r
49 #include "w32CONTEXT.h"\r
50 #include <rapi.h> //ccw 2 aug 2000\r
51 #include "baseTrampTemplate.h" //ccw 2 aug 2000\r
52 \r
53 \r
54 class remoteDevice {\r
55 \r
56         SOCKET deviceSocket;\r
57         bool success;\r
58 public:\r
59         //constructor\r
60         remoteDevice();\r
61 \r
62         bool test(LPCWSTR st1r,LPCWSTR s2tr, int y, LPCWSTR str);\r
63 \r
64 bool RemoteGetTrampTemplate();\r
65 \r
66 bool RemoteWriteProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, \r
67         LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesWritten);\r
68 \r
69 bool RemoteCreateProcess(LPCWSTR lpApplicationName, LPCWSTR lpCommandLine, \r
70 LPSECURITY_ATTRIBUTES lpProcessAttributes,\r
71 LPSECURITY_ATTRIBUTES lpThreadAttributes, \r
72 bool bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, \r
73 LPCWSTR lpCurrentDirectory, LPSTARTUPINFO\r
74 lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); \r
75 \r
76 HANDLE RemoteOpenProcess( DWORD fdwAccess, bool fInherit, \r
77 DWORD IDProcess);\r
78 \r
79 bool RemoteReadProcessMemory( HANDLE hProcess, LPCVOID\r
80 lpBaseAddress, \r
81 LPVOID lpBuffer, DWORD nSize, LPDWORD\r
82 lpNumberOfBytesRead);\r
83 \r
84 bool RemoteDebugActiveProcess( DWORD dwProcessId );\r
85 \r
86 \r
87 bool RemoteGetThreadContext( HANDLE hThread, w32CONTEXT *\r
88 lpContext);\r
89 \r
90 bool RemoteSetThreadContext( HANDLE hThread, \r
91 CONST w32CONTEXT * lpContext);\r
92 \r
93 bool RemoteWaitForDebugEvent(LPDEBUG_EVENT lpDebugEvent, \r
94 DWORD dwMilliseconds);\r
95 \r
96 bool RemoteContinueDebugEvent( DWORD dwProcessId, DWORD\r
97 dwThreadId, \r
98 DWORD dwContinueStatus );\r
99 \r
100 bool RemoteResumeThread(HANDLE hThread);\r
101 \r
102 bool RemoteSuspendThread(HANDLE hThread);\r
103 \r
104 bool RemoteTerminateProcess(HANDLE hThread, UINT uExitCode);\r
105 bool RemoteCloseHandle(HANDLE hObject);\r
106 \r
107 //ccw 29 sep 2000\r
108 bool RemoteFlushInstructionCache(HANDLE hProcess, LPCVOID lpBaseAddress, DWORD dwSize);\r
109 \r
110 };\r