gpioctl.h这是什么玩艺?

keyayi 2009-09-08 07:43:06
     

// gpioctl.h Include file for Generic Port I/O Example Driver
//
// 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.
//
// Robert B. Nelson (Microsoft) March 1, 1993

// 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)

union DATABUFFER{
ULONG LongData;
USHORT ShortData;
UCHAR CharData;
};

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;

我看很多代码都有, 听说是驱动给提供的头文件,怎么都一样?,谁来说说这文件的来龙去脉?





...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
会思考的草 2009-09-09
  • 打赏
  • 举报
回复
Generic Port I/O Example Driver 所使用的IOCTL值。
dirdirdir3 2009-09-08
  • 打赏
  • 举报
回复
就好像不同的程序访问文件都通过CreateFile来一样,不同的是文件名和参数.......
dirdirdir3 2009-09-08
  • 打赏
  • 举报
回复
IO端口读写本来就是读和写,不同的程序只是端口号不同而已............
keyayi 2009-09-08
  • 打赏
  • 举报
回复
那怎么都一样啊,很多程序都这样的。而且头文件的名字也不变。
dirdirdir3 2009-09-08
  • 打赏
  • 举报
回复
应该就是读写IO(端口)的东西吧

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧