社区
嵌入开发(WinCE)
帖子详情
如何用CreateFile打开设备
孙泳勇
2010-08-12 10:05:58
我写了个helloworld驱动,我应该怎么打开这个设备呢?
是不是像windows驱动一样要创建个设备的,可是我看其它驱动的源代码也没有创建设备的过程啊?
反正就是怎么用CreateFile和DeviceIoctrl与我的驱动通信?
...全文
1108
14
打赏
收藏
如何用CreateFile打开设备
我写了个helloworld驱动,我应该怎么打开这个设备呢? 是不是像windows驱动一样要创建个设备的,可是我看其它驱动的源代码也没有创建设备的过程啊? 反正就是怎么用CreateFile和DeviceIoctrl与我的驱动通信?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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参数应该怎么写?
【WINAPI】
Create
File
创建或
打开
设备
1 HANDLE
Create
File
( 2 PCTSTR pszName, 3 DWORD dwDesiredAccess, 4 DWORD dwShareMode, 5 PSECURITY_ATTRIBUTES psa, 6 DWORD dwCreationDi...
create
file
无权限_
Create
File
打开
驱动
设备
权限不足
Create
File
打开
驱动
设备
权限不足记得以前写了一个文件过滤驱动,使用的是minifilter的框架。在创建
设备
时,很常规的使用Io
Create
Device来创建一个命名的
设备
对象,然后对这个
设备
名使用Io
Create
SymbolicLink创建其应用层的链接符号名,这样我们在应用层就可以通过
Create
File
函数就可以
打开
这个
设备
,然后通过Write
File
,Read
File
和Device...
关于
create
file
无法
打开
控制
设备
当采用生成控制
设备
的方法实现与Ring3通信时,注意一定要处理控制
设备
的 IRP_MJ_
CREATE
,否则Ring3 的
create
file
肯定是打不开
设备
的。用GetLastError() 得错误编号为 1 ,得到的错误信息是“ 函数不正确。”弄了半天,以为是
Create
file
或生成控制
设备
的代码的问题。原来是疏忽了,忘了处理IRP_MJ_
CREATE
。
create
file
无权限_
设备
在非管理员权限下无法
打开
,
create
file
返回值为(0x0005)
找到方法了吗?先在管理员下提升权限,代码如下,我调试过了,肯定行的!BYTE aclBuffer[1024];PACL pacl=(PACL)&aclBuffer; //声明一个ACL,长度是1024BYTE sidBuffer[100];PSID psid=(PSID) &sidBuffer;//声明一个SID,长度是100DWORD sidBufferSize = 100;...
delphi用
create
file
打开
usb
设备
关键是第一个参数:
设备
链接名。 可以通过
设备
管理器找到相关usb
设备
,详细信息里边的
设备
范例ID获取部分信息,如Vid_1eab&Pid_8001#7&c6e4acc&0&1。 也可以直接查看注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses下找到usb
设备
驱动的guid,进入子键,一般都有一个#健,里面有s
嵌入开发(WinCE)
19,523
社区成员
41,565
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章