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

📄 gpioctl.h

📁 win2000下ISA接口的串口板卡的驱动程序
💻 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 + -