lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1233回复:1

请问:要将PCWSTR复制一个NonPagedPool的内存块用那个函数最好,谢谢

楼主#
更多 发布于:2008-12-22 12:27
定义了一个结构:
typedef struct _message
{
    PWSTR   name;
    BOOLEAN send;
    ULONG   size;    
}Message,*PMessage;

驱动运行在大于passive级,所以用的内存是NonPagedPool,得到name后我想写入这个内存代码如下:
PVOID Usermessage ;
Usermessage = ExAllocatePoolWithTag(NonPagedPool, sizeof(Message),'MpaM');
wcscpy(((PMessage) UserMessage)->name,temName);//temName是PWSTR变量
程序运行到这里死机,请问我该怎么办?
goodone
驱动牛犊
驱动牛犊
  • 注册日期2007-01-30
  • 最后登录2014-04-30
  • 粉丝3
  • 关注0
  • 积分372分
  • 威望174点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-12-22 18:08
wcscpy(((PMessage) UserMessage)->name,temName);//temName是PWSTR变量
typedef struct _message
{
    PWSTR   name;
    BOOLEAN send;
    ULONG   size;    
}Message,*PMessage;
中的 PWSTR   name; 指向的内存区域 你没有申请哦
你ExAllocatePoolWithTag的只是 Message这个结构的大小 name这个指针并没有指向任何有效的内存区域,你copy的时候 自然会挂了  不管是 wcscpy 还是 memcpy 或者 Rtlcopymemory
栀子花驿站 www.zhizihua.com
游客

返回顶部