mirror of
https://github.com/reactos/reactos.git
synced 2024-11-10 00:34:39 +00:00
37 lines
1 KiB
C
37 lines
1 KiB
C
|
#ifndef _FBT_HW_H_
|
||
|
#define _FBT_HW_H_
|
||
|
|
||
|
#include <winioctl.h>
|
||
|
|
||
|
// HW Driver Abstraction layer
|
||
|
class CBTHW
|
||
|
{
|
||
|
public:
|
||
|
// The driver is opened for OVERLAPPED I/O
|
||
|
CBTHW();
|
||
|
virtual ~CBTHW();
|
||
|
|
||
|
// Set the driver instances symbolic name
|
||
|
void SetDeviceName(LPCTSTR szDeviceName);
|
||
|
DWORD GetDeviceName(LPTSTR szBuffer, DWORD dwBufferSize);
|
||
|
|
||
|
// Open a handle to the driver instance
|
||
|
virtual DWORD Attach(LPCSTR szDeviceName);
|
||
|
virtual DWORD Detach();
|
||
|
HANDLE GetDriverHandle();
|
||
|
BOOL IsAttached() {return GetDriverHandle()!=INVALID_HANDLE_VALUE;}
|
||
|
|
||
|
// Send a command to the driver
|
||
|
DWORD SendCommand(DWORD dwCommand, LPVOID lpInBuffer=NULL, DWORD dwInBufferSize=0, LPVOID lpOutBuffer=NULL, DWORD dwOutBufferSize=0, OVERLAPPED *pOverlapped=NULL);
|
||
|
DWORD SendData(LPVOID lpBuffer, DWORD dwBufferSize, DWORD *dwBytesSent, OVERLAPPED *pOverlapped);
|
||
|
DWORD GetData(LPVOID lpBuffer, DWORD dwBufferSize, DWORD *dwBytesRead, OVERLAPPED *pOverlapped);
|
||
|
|
||
|
protected:
|
||
|
HANDLE m_hDriver;
|
||
|
TCHAR m_szDeviceName[1024];
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // _FBT_HW_H_
|