当前位置: 代码迷 >> 驱动开发 >> 关于IoGetDeviceObjectPointer回到的NTSTATUS判定
  详细解决方案

关于IoGetDeviceObjectPointer回到的NTSTATUS判定

热度:33   发布时间:2016-04-28 10:43:14.0
关于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头文件里或者网上搜索。