source: trunk/src/kernel32/hmnpipe.h@ 10010

Last change on this file since 10010 was 7927, checked in by sandervl, 24 years ago

pipe updates

File size: 4.5 KB
Line 
1/* $Id: hmnpipe.h,v 1.6 2002-02-15 19:14:52 sandervl Exp $ */
2/*
3 * Project Odin Software License can be found in LICENSE.TXT
4 *
5 * Win32 Named Pipes device access class
6 *
7 * Copyright 2000 Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
8 *
9 */
10
11#ifndef _HM_NPIPE_H_
12#define _HM_NPIPE_H_
13
14class HMDeviceNamedPipeClass : public HMDeviceFileClass
15{
16 public:
17 HMDeviceNamedPipeClass(LPCSTR lpDeviceName);
18
19 virtual BOOL FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength) ;
20
21 virtual BOOL PeekNamedPipe(PHMHANDLEDATA pHMHandleData,
22 LPVOID lpvBuffer,
23 DWORD cbBuffer,
24 LPDWORD lpcbRead,
25 LPDWORD lpcbAvail,
26 LPDWORD lpcbMessage);
27
28 virtual DWORD CreateNamedPipe(PHMHANDLEDATA pHMHandleData, LPCTSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode,
29 DWORD nMaxInstances, DWORD nOutBufferSize,
30 DWORD nInBufferSize, DWORD nDefaultTimeOut,
31 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
32
33 /* this is a handler method for calls to CreateFile() */
34 virtual DWORD CreateFile (LPCSTR lpFileName,
35 PHMHANDLEDATA pHMHandleData,
36 PVOID lpSecurityAttributes,
37 PHMHANDLEDATA pHMHandleDataTemplate);
38
39 /* this is a handler method for calls to ReadFile/Ex */
40 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
41 LPCVOID lpBuffer,
42 DWORD nNumberOfBytesToRead,
43 LPDWORD lpNumberOfBytesRead,
44 LPOVERLAPPED lpOverlapped,
45 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
46
47 /* this is a handler method for calls to WriteFile/Ex */
48 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
49 LPCVOID lpBuffer,
50 DWORD nNumberOfBytesToWrite,
51 LPDWORD lpNumberOfBytesWritten,
52 LPOVERLAPPED lpOverlapped,
53 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
54
55 /* this is a handler method for calls to GetFileType() */
56 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
57
58 /* this is a handler method for calls to CloseHandle() */
59 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
60
61 virtual BOOL ConnectNamedPipe(PHMHANDLEDATA pHMHandleData, LPOVERLAPPED lpOverlapped);
62
63 virtual BOOL DisconnectNamedPipe(PHMHANDLEDATA pHMHandleData);
64
65 virtual BOOL GetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData,
66 LPDWORD lpState,
67 LPDWORD lpCurInstances,
68 LPDWORD lpMaxCollectionCount,
69 LPDWORD lpCollectDataTimeout,
70 LPTSTR lpUserName,
71 DWORD nMaxUserNameSize);
72
73 virtual BOOL GetNamedPipeInfo(PHMHANDLEDATA pHMHandleData,
74 LPDWORD lpFlags,
75 LPDWORD lpOutBufferSize,
76 LPDWORD lpInBufferSize,
77 LPDWORD lpMaxInstances);
78
79
80 virtual DWORD TransactNamedPipe(PHMHANDLEDATA pHMHandleData,
81 LPVOID lpvWriteBuf,
82 DWORD cbWriteBuf,
83 LPVOID lpvReadBuf,
84 DWORD cbReadBuf,
85 LPDWORD lpcbRead,
86 LPOVERLAPPED lpo);
87
88 virtual BOOL SetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData,
89 LPDWORD lpdwMode,
90 LPDWORD lpcbMaxCollect,
91 LPDWORD lpdwCollectDataTimeout);
92
93 virtual BOOL GetOverlappedResult (PHMHANDLEDATA pHMHandleData,
94 LPOVERLAPPED lpOverlapped,
95 LPDWORD arg3,
96 BOOL arg4);
97
98 virtual BOOL CreatePipe(PHMHANDLEDATA pHMHandleDataRead,
99 PHMHANDLEDATA pHMHandleDataWrite,
100 LPSECURITY_ATTRIBUTES lpsa,
101 DWORD cbPipe);
102
103
104};
105
106
107#endif // _HM_NPIPE_H_
Note: See TracBrowser for help on using the repository browser.