CreateFile为什么无法open已经安装的驱动程序?(困扰我几天了,请高手帮忙!解决了一定多给分!)

lyd1978 2004-09-18 11:33:24
驱动程序(一个简单的试验应用程序与驱动程序通信的程序,不操作硬件)已经用inf文件通过硬件向导安装了,在设备管理器里面显示正常运行,但是在应用程序中用
m_hDevice = CreateFile("\\\\.\\IntrDemo0",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
NULL);
open驱动程序时总是失败,错误代码是0x1f。
(我用DriverWork的Symbolic Link Viewer查看,系统中确实存在IntrDemo0这个符号连接名),

为什么会这样呢?
对高手来说也许是小问题,却困了我几天,不知道为什么,救命啊!!!
...全文
263 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
TimiXu 2004-09-20
客户程序没有问题。

是你的驱动的问题。
你的驱动是控制硬件的,从以下可以看出。
InterruptDemoDevice::InterruptDemoDevice() :
// Base class
KDevice(
L"IntrDemo0",
FILE_DEVICE_UNKNOWN,
L"IntrDemo0",
DO_BUFFERED_IO
),

// Interrupt object
m_Interrupt(
Isa,
0,
FLOPPY_IRQ,
FLOPPY_IRQ,
Latched,
TRUE,
FALSE
),
///////////////////////////////
NTSTATUS InterruptDemoDevice::Create(KIrp I)
{
NTSTATUS status;

if (m_File == 0)
{
m_File = I.FileObject();
status = m_Interrupt.Connect(LinkTo(Isr),this);
}
else
status = STATUS_UNSUCCESSFUL;

T << "Create status = " << ULONG(status) << "\n";

I.Information() = 0;
return I.Complete(status);
}
这是在为软盘控制器写的驱动。
我把INF文件中的设备类改为了
Class = FDC
ClassGuid = {4d36e969-e325-11ce-bfc1-08002be10318}
并且更新了软盘控制器驱动程序为intrdemo.sys,能顺利更新。
调试客户程序时,提示"连接到系统的设备没有发挥作用"
我的机器没有软驱,你找个有软驱的机器,装一下驱动,再试试调试一下。
回复
lyd1978 2004-09-20
试了,跟你机器上的反应一样(因为我机器上也没有软驱,呵呵)。

肯定就是你说的这个原因,其实我一直没仔细看其他部分的程序,光想着怎么不能加载,没注意其实是操作软驱,汗。。。

非常感谢你!!!真希望能有机会多请教!
回复
lyd1978 2004-09-19
我已经发了,很感谢!!!
有什么想了解的或者有结果了可以回信给我或者在这上面发都可以。
回复
TimiXu 2004-09-19
可以把你的代码发给我吗?试试能不能帮你解决。
TimiXu@yahoo.com.cn
回复
lyd1978 2004-09-19
斑竹给点提示好不好?我已经搜过相关帖子了,找不到,
这个问题解决不了没办法做下面的事情,没办法,麻烦一下啦
回复
lyd1978 2004-09-19
to TimiXu:
我把FILE_FLAG_OVERLAPPED去掉了还是这样,然后干脆把这参数改成0还是不行,
能否再帮我想想还有没有其他原因?在设备管理器里面显示正常运行能否说明驱动程序已经正确load?另外,确定系统中确实存在IntrDemo0这个符号连接名。

to horris:
thanks for your up
回复
TimiXu 2004-09-19
你创建的设备支持 FILE_FLAG_OVERLAPPED吗?

如果确信已经创建了设备,且符号连接正确,去掉FILE_FLAG_OVERLAPPED看能不能打开设备。
回复
horris 2004-09-19
mark and help you up
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2004-09-18 11:33
社区公告
暂无公告