Windows CE常量IOCTL_DISK_READ的数值是多少?

时间:2011-06-02 22:19:00

标签: pinvoke windows-ce

我正在尝试在Win CE(5.0)上进行直接磁盘访问,我需要使用IOCTL_DISK_READ调用DeviceIoControl调用。

但我找不到哪个头文件(我使用的是VS2008而不是CE SDK),所以我找不到IOCTL的值。

如果有人知道价值(或者我能得到它),我将非常感激。

1 个答案:

答案 0 :(得分:1)

来自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;