source: trunk/src/kernel32/hmopen32.h@ 577

Last change on this file since 577 was 278, checked in by phaller, 26 years ago

Add: HandleManager support for kernel objects, various fixes

File size: 6.8 KB
Line 
1/* $Id: hmopen32.h,v 1.2 1999-07-06 15:48:47 phaller Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 Unified Handle Manager for OS/2
6 * 1999/06/17 PH Patrick Haller (phaller@gmx.net)
7 */
8
9#ifndef _HM_DEVICE_OPEN32_H_
10#define _HM_DEVICE_OPEN32_H_
11
12
13/*****************************************************************************
14 * Remark *
15 *****************************************************************************
16 */
17
18
19/*****************************************************************************
20 * Includes *
21 *****************************************************************************/
22
23#include "HMDevice.h"
24
25/*****************************************************************************
26 * Structures *
27 *****************************************************************************/
28
29class HMDeviceOpen32Class : public HMDeviceHandler
30{
31public:
32 HMDeviceOpen32Class(LPCSTR lpDeviceName) : HMDeviceHandler(lpDeviceName) {}
33
34
35 /* this is a special internal method to handle non-standard requests */
36 /* such as GetConsoleMode() for console devices */
37 virtual DWORD _DeviceRequest (PHMHANDLEDATA pHMHandleData,
38 ULONG ulRequestCode,
39 ULONG arg1,
40 ULONG arg2,
41 ULONG arg3,
42 ULONG arg4);
43
44 /* this is a handler method for calls to CreateFile() */
45 virtual DWORD CreateFile (LPCSTR lpFileName,
46 PHMHANDLEDATA pHMHandleData,
47 PVOID lpSecurityAttributes,
48 PHMHANDLEDATA pHMHandleDataTemplate);
49
50 /* this is a handler method for calls to OpenFile() */
51 virtual DWORD OpenFile (LPCSTR lpFileName,
52 PHMHANDLEDATA pHMHandleData,
53 OFSTRUCT* pOFStruct,
54 UINT fuMode);
55
56 /* this is a handler method for calls to CloseHandle() */
57 virtual DWORD CloseHandle(PHMHANDLEDATA pHMHandleData);
58
59 /* this is a handler method for calls to ReadFile() */
60 virtual DWORD ReadFile (PHMHANDLEDATA pHMHandleData,
61 LPCVOID lpBuffer,
62 DWORD nNumberOfBytesToRead,
63 LPDWORD lpNumberOfBytesRead,
64 LPOVERLAPPED lpOverlapped);
65
66 /* this is a handler method for calls to WriteFile() */
67 virtual DWORD WriteFile (PHMHANDLEDATA pHMHandleData,
68 LPCVOID lpBuffer,
69 DWORD nNumberOfBytesToWrite,
70 LPDWORD lpNumberOfBytesWritten,
71 LPOVERLAPPED lpOverlapped);
72
73 /* this is a handler method for calls to GetFileType() */
74 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
75
76 /* this is a handler method for calls to GetFileInformationByHandle() */
77 virtual DWORD GetFileInformationByHandle(PHMHANDLEDATA pHMHandleData,
78 BY_HANDLE_FILE_INFORMATION* pHFI);
79
80 /* this is a handler method for calls to SetEndOfFile() */
81 virtual BOOL SetEndOfFile(PHMHANDLEDATA pHMHandleData);
82
83 /* this is a handler method for calls to SetFileTime() */
84 virtual BOOL SetFileTime (PHMHANDLEDATA pHMHandleData,
85 LPFILETIME pFT1,
86 LPFILETIME pFT2,
87 LPFILETIME pFT3);
88
89 /* this is a handler method for calls to GetFileSize() */
90 virtual DWORD GetFileSize(PHMHANDLEDATA pHMHandleData,
91 PDWORD pSizeHigh);
92
93 /* this is a handler method for calls to SetFilePointer() */
94 virtual DWORD SetFilePointer(PHMHANDLEDATA pHMHandleData,
95 LONG lDistanceToMove,
96 PLONG lpDistanceToMoveHigh,
97 DWORD dwMoveMethod);
98
99 /* this is a handler method for calls to LockFile() */
100 virtual DWORD LockFile(PHMHANDLEDATA pHMHandleData,
101 DWORD arg2,
102 DWORD arg3,
103 DWORD arg4,
104 DWORD arg5);
105
106 /* this is a handler method for calls to LockFileEx() */
107 virtual DWORD LockFileEx(PHMHANDLEDATA pHMHandleData,
108 DWORD dwFlags,
109 DWORD dwReserved,
110 DWORD nNumberOfBytesToLockLow,
111 DWORD nNumberOfBytesToLockHigh,
112 LPOVERLAPPED lpOverlapped);
113
114 /* this is a handler method for calls to UnlockFile() */
115 virtual DWORD UnlockFile(PHMHANDLEDATA pHMHandleData,
116 DWORD arg2,
117 DWORD arg3,
118 DWORD arg4,
119 DWORD arg5);
120
121 /* this is a handler method for calls to UnlockFileEx() */
122 virtual DWORD UnlockFileEx(PHMHANDLEDATA pHMHandleData,
123 DWORD dwFlags,
124 DWORD dwReserved,
125 DWORD nNumberOfBytesToLockLow,
126 DWORD nNumberOfBytesToLockHigh,
127 LPOVERLAPPED lpOverlapped);
128
129 /* this is a handler method for calls to WaitForSingleObject */
130 virtual DWORD WaitForSingleObject (PHMHANDLEDATA pHMHandleData,
131 DWORD dwTimeout);
132
133 /* this is a handler method for calls to WaitForSingleObjectEx */
134 virtual DWORD WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData,
135 DWORD dwTimeout,
136 BOOL fAlertable);
137
138 /* this is a handler method for calls to FlushFileBuffers */
139 virtual BOOL FlushFileBuffers(PHMHANDLEDATA pHMHandleData);
140
141 /* this is a handler method for calls to GetOverlappedResult */
142 virtual BOOL GetOverlappedResult(PHMHANDLEDATA pHMHandleData,
143 LPOVERLAPPED arg2,
144 LPDWORD arg3,
145 BOOL arg4);
146};
147
148
149#endif /* _HM_DEVICE_OPEN32_H_ */
150
Note: See TracBrowser for help on using the repository browser.