Поделиться через


Функция 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" для да и букву "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.
    //
}

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntddk.h (include Ntddk.h)
библиотеки NtDll.lib (режим пользователя); NtosKrnl.lib (режим ядра)
DLL NtDll.dll (режим пользователя); NtosKrnl.exe (режим ядра)
IRQL <= DIRQL