- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经使用 native API 编写了应用程序。我在理解返回值方面遇到了一些麻烦。打印 NTSTATUS
返回的 native API
状态代码的格式说明符是什么> 在 c 中?
最佳答案
我通常在 printf
中使用 %X
将其格式化为十六进制。所以你可以检查这些值的含义 here .
此外,如果您正在编写没有控制台的驱动程序或类似的东西,您应该将所有内容记录到文件中。
如果您没有printf
,您应该使用参数列表和StringCbVPrintf
。
例如:
NTSTATUS Log (PWCHAR text, ... )
{
va_list args;
IO_STATUS_BLOCK iosb;
ULONG length;
UNICODE_STRING uniStr;
WCHAR buffer [1024] = { 0 };
va_start (args, text);
StringCbVPrintfW ((STRSAFE_LPWSTR) buffer, 1024 * sizeof (TCHAR), text, args);
RtlInitUnicodeString (&uniStr, (PCWSTR) buffer);
va_end (args);
RtlStringCbLengthW(buffer, 1024 * sizeof (TCHAR), (size_t *)&length);
return ZwWriteFile(hLog, NULL, NULL, NULL, &iosb, (PVOID)buffer, length, NULL, NULL);
}
而hLog
是全局变量,开头的某处应该调用ZwCreateFile
来打开日志文件。
关于c - 如何打印NTSTATUS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27815216/
我正在尝试制作一个程序,它将通过进程 ID 获取进程的命令行。我正在使用 Eclipse C++ 和 MINGW 编译器 所以我找到了 1 个教程如何做到这一点,它需要 ntstatus 所以就像我在
Windows CNG Cryptographic Primitive Functions具有 NTSTATUS 类型的返回值。提到了几个可能的(符号)返回值,例如 BCryptDecrypt fun
我正在 P/调用 NTQueryInformationProcess获取进程父级的 id,我想得到一个“可读”错误作为返回,所以我得到了 NtStatus 枚举从返回值转换......但我不明白为什么
我知道在出现特定错误时我会得到 NTSTATUS,但我得到的是 hresult,而不是来自 pinvoke 的 ntstatus。那么具体如何转换NTSTATUS HResult 的值(value)。
两个问题: 1. 在“ntdef.h”中,NTSTATUS定义如下: typedef __success(return >= 0) LONG NTSTATUS; “__success(return >
我正在编译一个出现错误的程序,因为 winnt.h 和 ntstatus.h 都包含在 WDK 中。我用预处理编译成一个文件,发现了这个: #line 1 "C:\\Program Files (x8
我正在尝试在 Python 中创建一个正则表达式来捕获来自 winerror.h 和 ntstatus.h 的所有最后错误、HRESULT 和 NTSTATUS 定义: > http://www.ca
我编写了以下代码来在注册表中创建一个新 key ,但是 NTSTATUS -1073741772 的错误值由 NtOpenKey() 返回尝试获取基本 key 的句柄以创建新 key 时的函数。 ty
我是一名优秀的程序员,十分优秀!