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);