S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Window WDM Q&A

Posted on 2009-10-25 16:48 S.l.e!ep.¢% 阅读(158) 评论(0)  编辑 收藏 引用 所属分类: Windows WDM

Q1. CreateFile Open驱动失败,返回的错误是 ERROR_I NVALI D_FUNCTI ON
A1:  原因是没有 IRP_MJ_CREATE 和 IRP_MJ_CLOSE
       只需要设置 IRP_MJ_CREATE 和 IRP_MJ_CLOSE, 并添加以下代码就可以解决
NTSTATUS Close(PDEVICE_OBJECT pDriverObject, PIRP Irp)
{
    Irp->IoStatus.Infomation  = 0;
    Irp->IoStatus.Status= STATUS_SUCCESS;
    IoCompleteRequest(Irp, IO_NO_INCREMENT);
    return STATUS_SUCCESS;
}

Q2: WDM 中 UNICODE_STRING  的比较
A2:  采用RtlEqualUnicodeString() 函数

Q3: 采用DebugView.exe 调试, 但使用 DbgPrint 或 KdPrint 打印的信息都没有显示?
A3:  在 DebugView.exe 的 Capture 菜单, 里头选中 Capture Kernel ,再试试

Q4:如何使用 DbgPrint 输入中文?
A4:UNICODE_STRING ustr; PCWSTR str=L"hello 中华人民共和国"; RtlInitUnicodeString(&ustr,str); DbgPrint("%wZ\n",&ustr);


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理