首页
社区
课程
招聘
[求助]DeviceIoControl的问题
发表于: 2008-12-27 00:29 5291

[求助]DeviceIoControl的问题

2008-12-27 00:29
5291
IoCreateDevice()之后
devobj->Flags(DO_BUFFERED_IO 、DO_DIRECT_IO)

DeviceIoControl中的
METHOD_BUFFERED
METHOD_IN_DIRECT
METHOD_OUT_DIRECT
METHOD_NEITHER
有没有什么关系?是不是Flags的设置跟DeviceIoControl没什么关系?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 3
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
DeviceIoControl 这个函数有读写方式可设置的吗? 你去哪看到的? 看MSDN, 这个函数没有读写方式可设; 那就是设备对象的读写方式与这个函数没有什么关系咯?

MSDN:

BOOL WINAPI DeviceIoControl(
  __in          HANDLE hDevice,
  __in          DWORD dwIoControlCode,
  __in          LPVOID lpInBuffer,
  __in          DWORD nInBufferSize,
  __out         LPVOID lpOutBuffer,
  __in          DWORD nOutBufferSize,
  __out         LPDWORD lpBytesReturned,
  __in          LPOVERLAPPED lpOverlapped
);
2008-12-27 08:45
0
雪    币: 2522
活跃值: (667)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
DeviceIoControl中的设备读写方式要与IoCreateDevice设定的一样!!!
2008-12-27 09:41
0
雪    币: 247
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
CTL_CODE必须遵循DDK中的定义规则,操作系统应该会预先分析RING3传入的CTL_CODE,安排内存访问方式和其他诸多事项:

METHOD_BUFFERED
METHOD_IN_DIRECT
METHOD_OUT_DIRECT
METHOD...


这是我的看法,lz搜搜资料吧。
2008-12-27 11:41
0
雪    币: 247
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
在CTL_CODE内部定义格式上,包含了读写方式的设定。虽然理论上,你可以随意定义CTL_CODE。

#define CTL_CODE( DeviceType, Function, Method, Access) (
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
2008-12-27 11:44
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
试验过了……Flags的设置只对ReadFile,WriteFile有影响,对DeviceIoControl没影响。
Flags跟CTL_CODE的Method太像了……
2008-12-27 12:25
0
游客
登录 | 注册 方可回帖
返回
//