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

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

volume api updates (LVM)

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