首页
社区
课程
招聘
[求助]关于Irp传进来的字符串 如何赋值
发表于: 2009-11-17 22:42 5085

[求助]关于Irp传进来的字符串 如何赋值

2009-11-17 22:42
5085
我在应用层传给驱动一组字符串,想把这字符串 赋值给 PCWSTR    ProcessName;
      我是这样定义IRP的 帮忙看看 ,
   PUCHAR                  InputBuffer;
   InputBuffer=          IrpStack->Parameters.DeviceIoControl.Type3InputBuffer;
  怎么把 InputBuffer 赋值给PCWSTR    ProcessName;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
2
蓝 草鸡了 帮帮忙
2009-11-18 00:06
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
3
高手帮帮忙。。。PVOID 无类型指针 怎么转换 PCWSTR
2009-11-18 09:43
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
这问题 高手没兴趣回答的    还是我等菜鸟来吧

内核有专门的API 可以转换的 查查就知道了
要么 你在R3 直接传宽字符到0环空间 让编译器强制转换
2009-11-19 21:27
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
5
楼主还是学好基础再写驱动
2009-11-19 21:31
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
你定义的IOCTL应该是METHOD_NEITHER方式,这种方式不太好,直接访问用户模式地址,必须保证DeviceIoControl跟派遣函数处于同一个线程上下文,否则访问用户地址会无效。派遣函数无法确认传进来的用户地址是否有效,因此最好用ProbeForRead和ProbeForWrite进行下验证,然后再进行数据的复制。因此我建议你用METHOD_BUFFERED方式。
针对你的问题有很多原因导致蓝屏:
__try
		{
			ProbeForRead( InputBuffer, sizeof( ULONG ),  sizeof( ULONG ) );
			ProbeForWrite( OutputBuffer, sizeof( ULONG ), sizeof( ULONG ) );
		}
		__except( EXCEPTION_EXECUTE_HANDLER )
		{
			s = GetExceptionCode();
			break;
		}
2009-11-20 10:10
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7
memset复制数据
2009-11-20 10:11
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
8
给楼主点建议:
1、驱动开发技术详解对通讯讲的很仔细,认真看下
2、把C语言关于数组和指针认真理解下
2009-11-20 10:16
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
wcscpy
2009-11-20 21:22
0
游客
登录 | 注册 方可回帖
返回
//