读书人

关于IoGetDeviceObjectPointer回到的N

发布时间: 2012-11-06 14:07:00 作者: rapoo

关于IoGetDeviceObjectPointer返回的NTSTATUS判定
使用DbgPrint("%d",status);获得的返回值是-1073741772,我不太清楚这是个什么错误,如果我要把它变成16进制,那他是什么码?原码,补码,反码,我应该怎么转换,或者有没有不用转换的方法就可以直接获得类似于STATUS_SUCCESS这样的返回值??

[解决办法]
ntstatus.h

//
// MessageId: STATUS_OBJECT_NAME_NOT_FOUND
//
// MessageText:
//
// Object Name not found.
//
#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034L)

[解决办法]
笨办法,直接去文件里面搜的。

将10进制的错误代码换成十六进制的,然后去头文件里面寻找就好了。
[解决办法]
用工具WinObj v2.22 查看你系统里面串口对应的DosDevice名称(在Device目录下)。
然后用正确的名称去初始化port_name。
[解决办法]
打印16位数字和printf类似:DbgPrint("%08x",status)

至于status值的含义,可以到ddk头文件里或者网上搜索。

读书人网 >驱动开发

热点推荐