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

Last change on this file since 22015 was 21302, checked in by ydario, 16 years ago

Kernel32 updates.

File size: 4.6 KB
Line 
1/* $Id: hmnpipe.h,v 1.7 2003-06-02 16:25:18 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
14#include "hmfile.h"
15
16class HMDeviceNamedPipeClass : public HMDeviceFileClass
17{
18 public:
19 HMDeviceNamedPipeClass(LPCSTR lpDeviceName);
20
21 virtual BOOL FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength) ;
22
23 virtual BOOL PeekNamedPipe(PHMHANDLEDATA pHMHandleData,
24 LPVOID lpvBuffer,
25 DWORD cbBuffer,
26 LPDWORD lpcbRead,
27 LPDWORD lpcbAvail,
28 LPDWORD lpcbMessage);
29
30 virtual DWORD CreateNamedPipe(PHMHANDLEDATA pHMHandleData, LPCTSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode,
31 DWORD nMaxInstances, DWORD nOutBufferSize,
32 DWORD nInBufferSize, DWORD nDefaultTimeOut,
33 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
34
35 /* this is a handler method for calls to CreateFile() */
36 virtual DWORD CreateFile (LPCSTR lpFileName,
37 PHMHANDLEDATA pHMHandleData,
38 PVOID lpSecurityAttributes,
39 PHMHANDLEDATA pHMHandleDataTemplate);
40
41 /* this is a handler method for calls to ReadFile/Ex */
42 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
43 LPCVOID lpBuffer,
44 DWORD nNumberOfBytesToRead,
45 LPDWORD lpNumberOfBytesRead,
46 LPOVERLAPPED lpOverlapped,
47 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
48
49 /* this is a handler method for calls to WriteFile/Ex */
50 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
51 LPCVOID lpBuffer,
52 DWORD nNumberOfBytesToWrite,
53 LPDWORD lpNumberOfBytesWritten,
54 LPOVERLAPPED lpOverlapped,
55 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
56
57 /* this is a handler method for calls to GetFileType() */
58 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
59
60 /* this is a handler method for calls to CloseHandle() */
61 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
62
63 virtual BOOL ConnectNamedPipe(PHMHANDLEDATA pHMHandleData, LPOVERLAPPED lpOverlapped);
64
65 virtual BOOL DisconnectNamedPipe(PHMHANDLEDATA pHMHandleData);
66
67 virtual BOOL GetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData,
68 LPDWORD lpState,
69 LPDWORD lpCurInstances,
70 LPDWORD lpMaxCollectionCount,
71 LPDWORD lpCollectDataTimeout,
72 LPTSTR lpUserName,
73 DWORD nMaxUserNameSize);
74
75 virtual BOOL GetNamedPipeInfo(PHMHANDLEDATA pHMHandleData,
76 LPDWORD lpFlags,
77 LPDWORD lpOutBufferSize,
78 LPDWORD lpInBufferSize,
79 LPDWORD lpMaxInstances);
80
81
82 virtual DWORD TransactNamedPipe(PHMHANDLEDATA pHMHandleData,
83 LPVOID lpvWriteBuf,
84 DWORD cbWriteBuf,
85 LPVOID lpvReadBuf,
86 DWORD cbReadBuf,
87 LPDWORD lpcbRead,
88 LPOVERLAPPED lpo);
89
90 virtual BOOL SetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData,
91 LPDWORD lpdwMode,
92 LPDWORD lpcbMaxCollect,
93 LPDWORD lpdwCollectDataTimeout);
94
95 virtual BOOL GetOverlappedResult (PHMHANDLEDATA pHMHandleData,
96 LPOVERLAPPED lpOverlapped,
97 LPDWORD arg3,
98 BOOL arg4);
99
100 virtual BOOL DuplicateHandle(HANDLE srchandle, PHMHANDLEDATA pHMHandleData, HANDLE srcprocess,
101 PHMHANDLEDATA pHMSrcHandle, HANDLE destprocess,
102 DWORD fdwAccess, BOOL fInherit, DWORD fdwOptions, DWORD fdwOdinOptions);
103
104};
105
106
107#endif // _HM_NPIPE_H_
Note: See TracBrowser for help on using the repository browser.