📄 gpioctl.h
字号:
/*++
Copyright (c) 1990-2000 Microsoft Corporation, All Rights Reserved
Module Name:
gpioctl.h
Abstract: Include file for Generic Port I/O Example Driver
Author: Robert R. Howell January 8, 1993
Revision History:
Robert B. Nelson (Microsoft) March 1, 1993
--*/
#if !defined(__GPIOCTL_H__)
#define __GPIOCTL_H__
//
// Define the IOCTL codes we will use. The IOCTL code contains a command
// identifier, plus other information about the device, the type of access
// with which the file must have been opened, and the type of buffering.
//
//
// Device type -- in the "User Defined" range."
//
#define GPD_TYPE 40000
// The IOCTL function codes from 0x800 to 0xFFF are for customer use.
#define IOCTL_GPD_READ_PORT_UCHAR \
CTL_CODE( GPD_TYPE, 0x900, METHOD_BUFFERED, FILE_READ_ACCESS )
#define IOCTL_GPD_READ_PORT_USHORT \
CTL_CODE( GPD_TYPE, 0x901, METHOD_BUFFERED, FILE_READ_ACCESS )
#define IOCTL_GPD_READ_PORT_ULONG \
CTL_CODE( GPD_TYPE, 0x902, METHOD_BUFFERED, FILE_READ_ACCESS )
#define IOCTL_GPD_WRITE_PORT_UCHAR \
CTL_CODE(GPD_TYPE, 0x910, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_GPD_WRITE_PORT_USHORT \
CTL_CODE(GPD_TYPE, 0x911, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_GPD_WRITE_PORT_ULONG \
CTL_CODE(GPD_TYPE, 0x912, METHOD_BUFFERED, FILE_WRITE_ACCESS)
//我定义的IO控制码
#define IOCTL_SET_BAUD_MODE \
CTL_CODE(GPD_TYPE, 0x913, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA \
CTL_CODE(GPD_TYPE, 0x914, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA\
CTL_CODE(GPD_TYPE, 0x915, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_1 \
CTL_CODE(GPD_TYPE, 0x916, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_1\
CTL_CODE(GPD_TYPE, 0x917, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_2 \
CTL_CODE(GPD_TYPE, 0x918, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_2\
CTL_CODE(GPD_TYPE, 0x919, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_3 \
CTL_CODE(GPD_TYPE, 0x91A, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_3\
CTL_CODE(GPD_TYPE, 0x91B, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_4 \
CTL_CODE(GPD_TYPE, 0x91C, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_4\
CTL_CODE(GPD_TYPE, 0x91D, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_5 \
CTL_CODE(GPD_TYPE, 0x91E, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_5\
CTL_CODE(GPD_TYPE, 0x91F, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_6 \
CTL_CODE(GPD_TYPE, 0x920, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_6\
CTL_CODE(GPD_TYPE, 0x921, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_7 \
CTL_CODE(GPD_TYPE, 0x922, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_7\
CTL_CODE(GPD_TYPE, 0x923, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_8 \
CTL_CODE(GPD_TYPE, 0x924, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_8\
CTL_CODE(GPD_TYPE, 0x925, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_9 \
CTL_CODE(GPD_TYPE, 0x926, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_9\
CTL_CODE(GPD_TYPE, 0x927, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_10 \
CTL_CODE(GPD_TYPE, 0x928, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_10\
CTL_CODE(GPD_TYPE, 0x929, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_READ_DATA_11 \
CTL_CODE(GPD_TYPE, 0x92a, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_WRITE_DATA_11\
CTL_CODE(GPD_TYPE, 0x92b, METHOD_BUFFERED, FILE_WRITE_ACCESS)
//定义结束
typedef struct _GENPORT_WRITE_INPUT {
ULONG PortNumber; // Port # to write to
union { // Data to be output to port
ULONG LongData;
USHORT ShortData;
UCHAR CharData;
};
} GENPORT_WRITE_INPUT;
//设置波特率等参数的数据结构
typedef struct _COM_SET_MODE {
UCHAR ComNum; // 串口号
ULONG Baud; //波特率
UCHAR Data; //数据位
UCHAR Stop; //停止位
UCHAR Parity; //校验位
UCHAR Count; //Fifo,InterruptLevel
UCHAR Mode; //工作模式
UCHAR bInterrupt; //是否有中断
} COM_SET_MODE,*PCOM_SET_MODE;
typedef struct _COM_STATE{
USHORT bInit; //是否初始化了
COM_SET_MODE State; //初始化信息
} COM_STATE,*PCOM_STATE;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -