我正试图在Win CE(5.0)上进行直接磁盘访问,我需要用IOCTL_disk_READ调用DeviceIoControl。
但我找不到中定义的头文件(我使用的是VS2008,而不是CE SDK),所以我找不出IOCTL的值。
如果有人知道它的价值(或者我能从哪里得到它),我会非常感激。
来自diskio.h
#define IOCTL_DISK_BASE FILE_DEVICE_DISK
...
#define IOCTL_DISK_READ
CTL_CODE(IOCTL_DISK_BASE, 0x702, METHOD_BUFFERED, FILE_READ_ACCESS)
编辑
为了完整起见,您不必回溯其他值
来自winioctl.h
#define CTL_CODE ( DeviceType, Function, Method, Access ) (
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)
)
...
#define METHOD_BUFFERED 0
...
#define FILE_READ_ACCESS (0x0001)
...
#define FILE_DEVICE_DISK 0x00000007
编辑2对于那些懒惰的人(比如我)来说,它是这样展开的:
(7 << 16) | (1 << 14) | (0x702 << 2) | (0)
哪个是
(0x70000) | (0x4000) | (0x1C08) | (0)
哪个将是(在C#中)
public const int IOCTL_DISK_READ = 0x75C08;