如何用CreateFile打开设备

孙泳勇 2010-08-12 10:05:58
我写了个helloworld驱动,我应该怎么打开这个设备呢?
是不是像windows驱动一样要创建个设备的,可是我看其它驱动的源代码也没有创建设备的过程啊?
反正就是怎么用CreateFile和DeviceIoctrl与我的驱动通信?
...全文
1055 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
demoxie1 2011-04-15
  • 打赏
  • 举报
回复
搞定了,谢谢。我忘了在platform.bib中忘了调用io.dll.
demoxie1 2011-04-15
  • 打赏
  • 举报
回复
我改成GIO了,但是结果还是不能createfile,仍为-1.
eagle1597 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 demoxie1 的回复:]
我用createfile打开我自己的流驱动MYIO,返回值为-1。
我打开COM2的时候,是成功的。
我在注册表里面信息加进内核了啊:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MYIO]
"Prefix"="MYIO"
"Index"=dword:1
"Dll"="myio.dll"
"Order"=dword:12
我的内核里面也有……
[/Quote]

Prefix 用三个字母,别多也别少.
demoxie1 2011-04-15
  • 打赏
  • 举报
回复
我用createfile打开我自己的流驱动MYIO,返回值为-1。
我打开COM2的时候,是成功的。
我在注册表里面信息加进内核了啊:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MYIO]
"Prefix"="MYIO"
"Index"=dword:1
"Dll"="myio.dll"
"Order"=dword:12
我的内核里面也有MYIO.DLL文件,请问会是什么原因啊?
chinesedragon2010 2010-08-12
  • 打赏
  • 举报
回复
楼主,你是“写了个helloworld驱动”还是写个应用程序来显示“hello world”?
InsaneCode 2010-08-12
  • 打赏
  • 举报
回复
例如:
调用I2C驱动:

g_I2C = CreateFile(L"I2C1:", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH, NULL);//相当于调用驱动中的OPEN函数。
然后可以直接调用IOCTL函数。根据CODE判断具体功能。
孙泳勇 2010-08-12
  • 打赏
  • 举报
回复
看来此贴没戏了,水哥不知道,牛哥不屑道!哎。。。
孙泳勇 2010-08-12
  • 打赏
  • 举报
回复
CreateFile的参数怎么写?与注册表中的数据关系是什么?
winceARM 2010-08-12
  • 打赏
  • 举报
回复
写必要的REG和DEF,按照流驱动的基本格式xxx_INIT,xxx_OPEN等等,然后调用CreateFile就可以打开设备了
孙泳勇 2010-08-12
  • 打赏
  • 举报
回复
wince驱动有创建设备吗?没有吧?
jackyjkchen 2010-08-12
  • 打赏
  • 举报
回复
设备名都是字符串,和打开文件没有区别的……

还是看看windows核心编程,讲得比较细
chinesedragon2010 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kacyquan 的回复:]
例如:
调用I2C驱动:

g_I2C = CreateFile(L"I2C1:", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH, NULL);//相当于调用驱动中的OPEN函数。
然后可以直接调用IOCTL函数。根据CODE判断具体功能。
……
[/Quote]
正解
harkspan 2010-08-12
  • 打赏
  • 举报
回复
CreateFile (TEXT ("HW1:"), GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_EXISTING, 0, NULL);
孙泳勇 2010-08-12
  • 打赏
  • 举报
回复
驱动已被成功加载!!!

注册表:
dll helloworld.dll
prefix HW
index 1
order 0

打开设备:
CreateFile参数应该怎么写?

19,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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