⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtdriver.h

📁 用Ardence RTX SDK开发的EPP并口驱动程序.
💻 H
字号:
/*++
 *
 * Copyright (c) 1997-2007 Ardence, a Citrix Company.  All rights reserved.
 *
 * Module Name:
 *
 *	RtDriver.h
 *
 * Abstract:
 *
 *	Define function prototypes, structures and defines for applications
 *	and device drivers which use the RTX driver library.
 *
 * Environment:
 *
 *	RTX device drivers or applications (Win32 or RTSS).
 *
 * Revision History:
 *
--*/

#ifndef _RTDRIVER_HEADER_
#define _RTDRIVER_HEADER_

//
// Application-side stuff.
//
#define RTD_CMD_READ		3	// read command
#define RTD_CMD_WRITE		4	// write command
#define RTD_CMD_WRRD		5	// write then read read command
#define RTD_CMD_IOCTL		6	// generalized control
#define RTD_MAX_BUFFFER		64 

HANDLE
_stdcall
RtdDeviceOpen(
    PCHAR	lpName,				// Real-time device driver name
    DWORD	dwFlags				// Flags
    );

BOOL
_stdcall
RtdDeviceClose(
    HANDLE	hDriver				// Handle from RtdDeviceOpen
    );

BOOL
_stdcall
RtdDeviceTransfer(
    HANDLE	hDriver,			// Handle from RtdDeviceOpen
    DWORD	dwCommand,			// Transfer command
    LPVOID	lpInBuffer,			// Input buffer (NULL if none)
    DWORD	dwInBufferSize,		// Input buffer size (0 if none)
    LPVOID	lpOutBuffer,		// Output buffer (NULL if none)
    DWORD	dwOutBufferSize,	// Output buffer size (0 if none)
    LPDWORD	lpBytesReturned		// Actual bytes returned
    );


//
// Driver-side stuff.
//
typedef struct {
    DWORD	dwProcessID;		// App's process ID
    DWORD	dwCommand;			// Device transfer command
    LPVOID	lpBuffer;			// Buffer for IO in shared memory
    DWORD	dwInBufferSize;		// App's input buffer size (0 if none)
    DWORD	dwOutBufferSize;	// App's output buffer size (0 if none)
    DWORD	dwBytesReturned;	// # of bytes (set by the driver)
    DWORD	dwStatus;
} TRP, *PTRP;


#define RTD_OPEN	0X9C402460	// Driver opened by application
#define RTD_CLOSE	0X9C402464	// Driver closed by application


HANDLE
_stdcall
RtdDriverRegister(
    PCHAR	lpName,
    ULONG	(_stdcall *DispatchRoutime)(
			PTRP	TransferRequestPacket
			),
    ULONG	StackSize,            
    ULONG	Priority,
    DWORD	dwMaximumBufferSize,
    DWORD	dwFlags
    );

BOOL
_stdcall
RtdDriverUnregister(
    HANDLE	hDriver
    );

HANDLE
_stdcall
RtdDriverGetEvent(
    HANDLE	hDriver
    );

DWORD
_stdcall
RtdDriverWaitEvent(
    HANDLE	hDriver,
    DWORD	dwMilliseconds);

//
// Internal library defines and structures.
//
#ifdef	RTD_INTERNAL

#define	EXT_SHM		".sm"
#define EXT_SEM1	".s1"
#define EXT_SEM2	".s2"

#define STATUS_BUSY	MAXLONG
#define	STATUS_SUCCESS	NO_ERROR
#define STATUS_UNSUCCESSFUL   0x1
#define IO_NO_INCREMENT       0

#define RTD_EXIT	MAXLONG

//
// Shared memory structure.
//
typedef struct {
    DWORD	dwMaximumBufferSize;
    TRP		TransferRequest;
    DWORD	dwStatus;
    ULONG	Buffer[1];
} CMD, *PCMD;

#endif

#endif //_RTDRIVER_HEADER_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -