阅读:1690回复:10
求着两个DWORD对应的IOCTL码?
0x74804
0x66001b 是我的Driver收到的两个IOCTL码,我不知道它们的意义,也就没有办法处理了 谢谢!? |
|
|
沙发#
发布于:2002-11-12 14:11
我找了一下,好象不是标准设备的,你可以看驱动SOURCE的头文件。
|
|
|
板凳#
发布于:2002-11-12 14:16
这个Driver就是我写的呀
收到IOCTL的设备是FILE_DEVICE_DISK类型的设备 这两个IOCTL似乎是格式化的时候收到的,我没有处理 格式话不能成功,我怀疑是我没有处理这两个IOCTL的缘故 |
|
|
地板#
发布于: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) |
|
|
地下室#
发布于:2002-11-12 14:25
我只定义了两个IOCTL码,这两个我都处理了的
由于我的Driver创建的是一个FILE_DEVICE_DISK设备,所以还会收到一些不是我定义的IOCTL码,比如IOCTL_DISK_GET_DRIVE_GEOMETRY之类的 我觉得那两个IOCTL肯定是系统定义的,因为我的确没有定义它们 |
|
|
5楼#
发布于:2002-11-12 14:30
那你到winioctl.h(VC中) 和WDM.H中去找一下。
|
|
|
6楼#
发布于:2002-11-12 14:34
我本来猜应该在ntdddisk.h里面,但这些IOCTL都是用CTL_CODE定义的,算起来很烦!
我看有没有人知道的 谢谢你 |
|
|
7楼#
发布于:2002-11-12 14:39
磁盘驱动程序必须处理一些特殊的ioctl。
|
|
8楼#
发布于:2002-11-13 14:18
我已经找到其中一个0x74804对应的是IOCTL_DISK_MEDIA_REMOVAL,DDK中说将被IOCTL_STORAGE_MEDIA_REMOVAL取代
继续寻找另外一个 |
|
|
9楼#
发布于:2002-11-13 16:10
第二个我也找到了
0x66001b对应的是FT_BALANCED_READ_MODE 这东西是干嘛用的?DDK里面没讲。是在ntddft.h里面定义的 |
|
|
10楼#
发布于:2002-11-13 16:11
我已经找到其中一个0x74804对应的是IOCTL_DISK_MEDIA_REMOVAL,DDK中说将被IOCTL_STORAGE_MEDIA_REMOVAL取代 go... |
|
|