首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

关于IoGetDeviceObjectPointer回到的NTSTATUS判定

2012-11-06 
关于IoGetDeviceObjectPointer返回的NTSTATUS判定使用DbgPrint(%d,status)获得的返回值是-1073741772,

关于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头文件里或者网上搜索。

热点排行