dbgPrompt 函数 (ntddk.h)

DbgPrompt 例程在内核调试器的显示设备上显示调用方指定的用户提示字符串,并获取用户响应字符串。

语法

NTSYSAPI ULONG DbgPrompt(
  [in]  PCCH  Prompt,
  [out] PCH   Response,
        ULONG Length
);

参数

[in] Prompt

指向以 NULL 结尾的常量字符串的指针,调试器将显示为用户提示。 此字符串的最大大小为 512 个字符。

[out] Response

指向接收用户响应(包括终止换行符)的字符数组缓冲区的指针。 此缓冲区的最大大小为 512 个字符。

Length

接收用户响应的缓冲区的大小(以字符为单位)。 此大小是例程将返回的最大字符数。

返回值

DbgPrompt 返回 响应 缓冲区收到的字符数,包括终止换行符。 如果 DbgPrompt 未收到任何字符,则返回零。

注解

DbgPrompt 例程在内核调试器的显示设备上显示指定的提示字符串,然后读取一行用户输入文本。

DbgPrompt 返回后,响应缓冲区包含用户的响应,包括终止换行符。 用户响应字符串不是以 NULL 结尾的。

下面的代码示例询问用户是否要继续,并接受字母“y”表示 yes,接受字母“n”表示否。

CHAR Response[2];
BOOLEAN Continue = FALSE;
ULONG CharCount;
for (;;) {
 CharCount = DbgPrompt(
  "Do you want to continue? (Type y or n, then type Enter.) ",
  Response,
  sizeof(Response)
  );

 if (CharCount == 2) {
 if (Response[0] == 'y') {
  Continue = TRUE;
  break;
  } else if (Response[0] == 'n') {
  break;
     }
    }

    //
    // Incorrect response. Display the prompt again.
    //
}

要求

要求
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtDll.lib (用户模式) ;NtosKrnl.lib (内核模式)
DLL NtDll.dll (用户模式) ;NtosKrnl.exe (内核模式)
IRQL <= DIRQL