source: trunk/src/kernel32/hmdisk.h@ 10367

Last change on this file since 10367 was 8401, checked in by sandervl, 23 years ago

hard disk access updates & fixes

File size: 3.2 KB
Line 
1/* $Id: hmdisk.h,v 1.10 2002-05-10 14:55:12 sandervl Exp $ */
2
3#ifndef __HMDISK_H__
4#define __HMDISK_H__
5
6/*****************************************************************************
7 * Includes *
8 *****************************************************************************/
9
10#include <handlemanager.h>
11#include "HMDevice.h"
12#include "HMObjects.h"
13
14/*****************************************************************************
15 * Structures *
16 *****************************************************************************/
17
18class HMDeviceDiskClass : public HMDeviceKernelObjectClass
19{
20public:
21 HMDeviceDiskClass(LPCSTR lpDeviceName);
22
23 //checks if device name belongs to this class
24 virtual BOOL FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength);
25
26 /* this is a handler method for calls to CreateFile() */
27 virtual DWORD CreateFile (LPCSTR lpFileName,
28 PHMHANDLEDATA pHMHandleData,
29 PVOID lpSecurityAttributes,
30 PHMHANDLEDATA pHMHandleDataTemplate);
31
32 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
33
34 /* this is a handler method for calls to ReadFile/Ex */
35 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
36 LPCVOID lpBuffer,
37 DWORD nNumberOfBytesToRead,
38 LPDWORD lpNumberOfBytesRead,
39 LPOVERLAPPED lpOverlapped,
40 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
41
42 /* this is a handler method for calls to WriteFile/Ex */
43 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
44 LPCVOID lpBuffer,
45 DWORD nNumberOfBytesToWrite,
46 LPDWORD lpNumberOfBytesWritten,
47 LPOVERLAPPED lpOverlapped,
48 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
49
50 /* this is a handler method for calls to SetFilePointer() */
51 virtual DWORD SetFilePointer(PHMHANDLEDATA pHMHandleData,
52 LONG lDistanceToMove,
53 PLONG lpDistanceToMoveHigh,
54 DWORD dwMoveMethod);
55
56 /* this is a handler method for calls to DeviceIoControl() */
57 virtual BOOL DeviceIoControl (PHMHANDLEDATA pHMHandleData, DWORD dwIoControlCode,
58 LPVOID lpInBuffer, DWORD nInBufferSize,
59 LPVOID lpOutBuffer, DWORD nOutBufferSize,
60 LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);
61
62 /* this is a handler method for calls to GetFileSize() */
63 virtual DWORD GetFileSize(PHMHANDLEDATA pHMHandleData,
64 PDWORD pSizeHigh);
65
66 /* this is a handler method for calls to GetFileType() */
67 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
68
69private:
70 DWORD OpenDisk(PVOID pDrvInfo);
71};
72
73
74#endif //__HMDISK_H__
Note: See TracBrowser for help on using the repository browser.