Window WDM Q&A

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

你可能感兴趣的:(Window WDM Q&A)