gpt4 book ai didi

c - 如何打印NTSTATUS?

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:49 40 4
gpt4 key购买 nike

我已经使用 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/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com