次の方法で共有


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 は 0 を返します。

注釈

DbgPrompt ルーチンは、カーネル デバッガーの表示デバイスに指定されたプロンプト文字列を表示し、ユーザー入力テキストの行を読み取ります。

DbgPrompt が返された後、応答バッファーには、終了する改行文字を含むユーザーの応答が含まれます。 ユーザー応答文字列は NULL で終わるものではありません。

次のコード例では、ユーザーが続行するかどうかを確認し、"y" という文字を yes に、文字 "n" を no に受け入れます。

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.
    //
}

要件

要件
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library NtDll.lib (ユーザー モード);NtosKrnl.lib (カーネル モード)
[DLL] NtDll.dll (ユーザー モード);NtosKrnl.exe (カーネル モード)
IRQL <= DIRQL