📄 rtdriver.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 + -