Changeset 111 for trunk/src/kernel32/HandleManager.h
- Timestamp:
- Jun 17, 1999, 8:22:43 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/HandleManager.h
r99 r111 1 /* $Id: HandleManager.h,v 1. 3 1999-06-10 19:11:30phaller Exp $ */1 /* $Id: HandleManager.h,v 1.4 1999-06-17 18:21:36 phaller Exp $ */ 2 2 3 3 /* … … 55 55 56 56 57 #define IS_HM_HANDLE(hHandle) ( (hHandle & ~HM_HANDLE_MASK) == HM_HANDLE_ID )57 //#define IS_HM_HANDLE(hHandle) ( (hHandle & ~HM_HANDLE_MASK) == HM_HANDLE_ID ) 58 58 59 59 … … 74 74 #define FILE_TYPE_REMOTE 0x8000 75 75 76 #ifndef INVALID_HANDLE_ERROR 77 #define INVALID_HANDLE_ERROR (-1) 78 #endif 76 79 77 80 … … 82 85 typedef struct _HMHANDLEDATA 83 86 { 84 HANDLE hHandle; /* a copy of the handle */ 87 HANDLE hHMHandle; /* a copy of the handle */ 88 HANDLE hWinHandle; /* a copy of the windows handle */ 85 89 86 90 DWORD dwType; /* handle type identifier */ … … 95 99 96 100 97 #ifdef __cplusplus98 class HMDeviceHandler99 {100 /***************************************************************************101 * The following methods are called by the handle manager request router. *102 * They are exact replacements for the corresponding Win32 calls. *103 ***************************************************************************/104 105 public:106 LPCSTR lpHMDeviceName; /* a reference to the device name */107 108 HMDeviceHandler(LPCSTR lpDeviceName); /* constructor with device name */109 110 111 /***********************************112 * handle generic standard methods *113 ***********************************/114 115 /* this is a special internal method to handle non-standard requests */116 /* such as GetConsoleMode() for console devices */117 virtual DWORD _DeviceRequest (PHMHANDLEDATA pHMHandleData,118 ULONG ulRequestCode,119 ULONG arg1,120 ULONG arg2,121 ULONG arg3,122 ULONG arg4);123 124 /* this is a handler method for calls to CreateFile() */125 virtual DWORD CreateFile (LPCSTR lpFileName,126 PHMHANDLEDATA pHMHandleData,127 PVOID lpSecurityAttributes,128 PHMHANDLEDATA pHMHandleDataTemplate);129 130 /* this is a handler method for calls to CloseHandle() */131 virtual DWORD CloseHandle(PHMHANDLEDATA pHMHandleData);132 133 /* this is a handler method for calls to ReadFile() */134 virtual DWORD ReadFile (PHMHANDLEDATA pHMHandleData,135 LPCVOID lpBuffer,136 DWORD nNumberOfBytesToRead,137 LPDWORD lpNumberOfBytesRead,138 LPOVERLAPPED lpOverlapped);139 140 /* this is a handler method for calls to WriteFile() */141 virtual DWORD WriteFile (PHMHANDLEDATA pHMHandleData,142 LPCVOID lpBuffer,143 DWORD nNumberOfBytesToWrite,144 LPDWORD lpNumberOfBytesWritten,145 LPOVERLAPPED lpOverlapped);146 147 /* this is a handler method for calls to GetFileType() */148 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);149 };150 151 #endif152 153 154 101 /***************************************************************************** 155 102 * Prototypes * … … 159 106 160 107 DWORD HMTerminate(void); /* terminate the HandleManager */ 161 162 163 #ifdef __cplusplus164 /* register a new device with the handle manager */165 DWORD HMDeviceRegister(PSZ pszDeviceName, HMDeviceHandler *pDeviceHandler);166 #endif167 168 108 169 109 … … 174 114 BOOL HMSetStdHandle(DWORD nStdHandle, 175 115 HANDLE hHandle); 176 177 /* this is a handler method for calls to CreateFile() */178 HANDLE HMCreateFile (LPCSTR lpFileName,179 DWORD dwDesiredAccess,180 DWORD dwShareMode,181 PVOID lpSecurityAttributes,182 DWORD dwCreationDisposition,183 DWORD dwFlagsAndAttributes,184 HANDLE hTemplateFile);185 186 /* this is a handler method for calls to CloseHandle() */187 BOOL HMCloseHandle(HANDLE hObject);188 189 /* this is a handler method for calls to ReadFile() */190 BOOL HMReadFile (HANDLE hFile,191 LPCVOID lpBuffer,192 DWORD nNumberOfBytesToRead,193 LPDWORD lpNumberOfBytesRead,194 LPOVERLAPPED lpOverlapped);195 196 /* this is a handler method for calls to WriteFile() */197 BOOL HMWriteFile (HANDLE hFile,198 LPCVOID lpBuffer,199 DWORD nNumberOfBytesToWrite,200 LPDWORD lpNumberOfBytesWritten,201 LPOVERLAPPED lpOverlapped);202 203 /* this is a handler method for calls to GetFileType() */204 DWORD HMGetFileType(HANDLE hFile);205 206 /* this is for special non-standard device I/O */207 DWORD HMDeviceRequest (HANDLE hFile,208 ULONG ulRequestCode,209 ULONG arg1,210 ULONG arg2,211 ULONG arg3,212 ULONG arg4);213 116 214 117 … … 242 145 *****************************************************************************/ 243 146 147 // enable C linkage to avoid parameter mangling 148 #ifdef __cplusplus__ 149 extern "C" { 150 #endif 151 152 HFILE HMCreateFile(LPCSTR lpFileName, 153 DWORD dwDesiredAccess, 154 DWORD dwShareMode, 155 LPSECURITY_ATTRIBUTES lpSecurityAttributes, 156 DWORD dwCreationDisposition, 157 DWORD dwFlagsAndAttributes, 158 HANDLE hTemplateFile); 159 160 HANDLE HMOpenFile(LPCSTR lpFileName, 161 OFSTRUCT* pOFStruct, 162 UINT fuMode); 163 164 BOOL HMCloseHandle(HANDLE hObject); 165 166 BOOL HMReadFile(HANDLE hFile, 167 LPVOID lpBuffer, 168 DWORD nNumberOfBytesToRead, 169 LPDWORD lpNumberOfBytesRead, 170 LPOVERLAPPED lpOverlapped); 171 172 BOOL HMWriteFile(HANDLE hFile, 173 LPCVOID lpBuffer, 174 DWORD nNumberOfBytesToWrite, 175 LPDWORD lpNumberOfBytesWritten, 176 LPOVERLAPPED lpOverlapped); 177 178 DWORD HMGetFileType(HANDLE hFile); 179 180 DWORD HMDeviceRequest (HANDLE hFile, 181 ULONG ulRequestCode, 182 ULONG arg1, 183 ULONG arg2, 184 ULONG arg3, 185 ULONG arg4); 186 187 DWORD HMGetFileInformationByHandle (HANDLE hFile, 188 BY_HANDLE_FILE_INFORMATION *pHFI); 189 190 BOOL HMSetEndOfFile (HANDLE hFile); 191 192 BOOL HMSetFileTime (HANDLE hFile, 193 const FILETIME *pFT1, 194 const FILETIME *pFT2, 195 const FILETIME *pFT3); 196 197 DWORD HMGetFileSize (HANDLE hFile, 198 PDWORD pSize); 199 200 DWORD HMSetFilePointer (HANDLE hFile, 201 LONG lDistanceToMove, 202 PLONG lpDistanceToMoveHigh, 203 DWORD dwMoveMethod); 204 205 BOOL HMLockFile (HFILE hFile, 206 DWORD arg2, 207 DWORD arg3, 208 DWORD arg4, 209 DWORD arg5); 210 211 DWORD HMLockFileEx(HANDLE hFile, 212 DWORD dwFlags, 213 DWORD dwReserved, 214 DWORD nNumberOfBytesToLockLow, 215 DWORD nNumberOfBytesToLockHigh, 216 LPOVERLAPPED lpOverlapped); 217 218 BOOL HMUnlockFile (HFILE hFile, 219 DWORD arg2, 220 DWORD arg3, 221 DWORD arg4, 222 DWORD arg5); 223 224 BOOL HMUnlockFileEx(HANDLE hFile, 225 DWORD dwFlags, 226 DWORD dwReserved, 227 DWORD nNumberOfBytesToLockLow, 228 DWORD nNumberOfBytesToLockHigh, 229 LPOVERLAPPED lpOverlapped); 230 231 232 #ifdef __cplusplus__ 233 } 234 #endif 244 235 245 236 #endif /* _HANDLEMANAGER_H_ */
Note:
See TracChangeset
for help on using the changeset viewer.