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