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

Last change on this file since 7504 was 7457, checked in by sandervl, 24 years ago

preliminary work on overlapped serial comm IO

File size: 3.6 KB
Line 
1/* $Id: hmnpipe.h,v 1.4 2001-11-26 14:54:03 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 (HANDLE hHandle,
35 LPCSTR lpFileName,
36 PHMHANDLEDATA pHMHandleData,
37 PVOID lpSecurityAttributes,
38 PHMHANDLEDATA pHMHandleDataTemplate);
39
40 /* this is a handler method for calls to CloseHandle() */
41 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
42
43 virtual BOOL ConnectNamedPipe(PHMHANDLEDATA pHMHandleData, LPOVERLAPPED lpOverlapped);
44
45 virtual BOOL DisconnectNamedPipe(PHMHANDLEDATA pHMHandleData);
46
47 virtual BOOL GetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData,
48 LPDWORD lpState,
49 LPDWORD lpCurInstances,
50 LPDWORD lpMaxCollectionCount,
51 LPDWORD lpCollectDataTimeout,
52 LPTSTR lpUserName,
53 DWORD nMaxUserNameSize);
54
55 virtual BOOL GetNamedPipeInfo(PHMHANDLEDATA pHMHandleData,
56 LPDWORD lpFlags,
57 LPDWORD lpOutBufferSize,
58 LPDWORD lpInBufferSize,
59 LPDWORD lpMaxInstances);
60
61
62 virtual DWORD TransactNamedPipe(PHMHANDLEDATA pHMHandleData,
63 LPVOID lpvWriteBuf,
64 DWORD cbWriteBuf,
65 LPVOID lpvReadBuf,
66 DWORD cbReadBuf,
67 LPDWORD lpcbRead,
68 LPOVERLAPPED lpo);
69
70 virtual BOOL SetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData,
71 LPDWORD lpdwMode,
72 LPDWORD lpcbMaxCollect,
73 LPDWORD lpdwCollectDataTimeout);
74
75 virtual BOOL GetOverlappedResult (PHMHANDLEDATA pHMHandleData,
76 LPOVERLAPPED lpOverlapped,
77 LPDWORD arg3,
78 BOOL arg4);
79
80 virtual BOOL CreatePipe(PHMHANDLEDATA pHMHandleDataRead,
81 PHMHANDLEDATA pHMHandleDataWrite,
82 LPSECURITY_ATTRIBUTES lpsa,
83 DWORD cbPipe);
84
85
86};
87
88
89#endif // _HM_NPIPE_H_
Note: See TracBrowser for help on using the repository browser.