JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1690回复:10

求着两个DWORD对应的IOCTL码?

楼主#
更多 发布于:2002-11-12 13:43
0x74804
0x66001b
是我的Driver收到的两个IOCTL码,我不知道它们的意义,也就没有办法处理了

谢谢!?
I'm upgrading……
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-12 14:11
我找了一下,好象不是标准设备的,你可以看驱动SOURCE的头文件。
生命驱动,活力无限!
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-12 14:16
这个Driver就是我写的呀
收到IOCTL的设备是FILE_DEVICE_DISK类型的设备
这两个IOCTL似乎是格式化的时候收到的,我没有处理
格式话不能成功,我怀疑是我没有处理这两个IOCTL的缘故
I'm upgrading……
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-12 14:21
你自己写的,还有什么好问的?放分吧!

编写驱动程序时,你可以自由地设计一系列IOCTL操作,应用程序也可以使用这些IOCTL操作与你的驱动程序对话。虽然有时你定义的IOCTL操作在数值上与其它人定义的完全相同,但系统不会被这种重叠所迷惑,因为你定义的IOCTL代码仅被你的驱动程序解释。

通常,如果应用程序开发者需要调用你的驱动程序,简单的办法是把你所有的IOCTL定义都放到一个专用的头文件中。如下例:

#ifndef CTL_CODE
  #pragma message (\"CTL_CODE undefined. Include winioctl.h or wdm.h\")
#endif

#define IOCTL_GET_VERSION_BUFFERED \\
  CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_GET_VERSION_DIRECT \\
  CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_GET_VERSION_NEITHER \\
  CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_NEITHER, FILE_ANY_ACCESS)
 
生命驱动,活力无限!
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-12 14:25
我只定义了两个IOCTL码,这两个我都处理了的
由于我的Driver创建的是一个FILE_DEVICE_DISK设备,所以还会收到一些不是我定义的IOCTL码,比如IOCTL_DISK_GET_DRIVE_GEOMETRY之类的
我觉得那两个IOCTL肯定是系统定义的,因为我的确没有定义它们
I'm upgrading……
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-12 14:30
那你到winioctl.h(VC中) 和WDM.H中去找一下。
生命驱动,活力无限!
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-12 14:34
我本来猜应该在ntdddisk.h里面,但这些IOCTL都是用CTL_CODE定义的,算起来很烦!
我看有没有人知道的
谢谢你
I'm upgrading……
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-12 14:39
磁盘驱动程序必须处理一些特殊的ioctl。
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-13 14:18
我已经找到其中一个0x74804对应的是IOCTL_DISK_MEDIA_REMOVAL,DDK中说将被IOCTL_STORAGE_MEDIA_REMOVAL取代
继续寻找另外一个
I'm upgrading……
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-13 16:10
第二个我也找到了
0x66001b对应的是FT_BALANCED_READ_MODE
这东西是干嘛用的?DDK里面没讲。是在ntddft.h里面定义的
I'm upgrading……
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-13 16:11
我已经找到其中一个0x74804对应的是IOCTL_DISK_MEDIA_REMOVAL,DDK中说将被IOCTL_STORAGE_MEDIA_REMOVAL取代
继续寻找另外一个


go...
[color=red]大头鬼! :P[/color]
游客

返回顶部