Макрос KdPrintEx (wdm.h)

Макрос KdPrintEx отправляет строку в отладчик ядра при выполнении указанных условий.

Вызов KdPrintEx требует двойных скобок.

Синтаксис

void KdPrintEx(
   _x_
);

Параметры

_x_

Задает аргументы для строки формата, как в printf.

Возвращаемое значение

None

Remarks

KdPrintEx идентичен подпрограмме DbgPrintEx в коде, скомпилированном для конфигурации отладки. Эта подпрограмма не влияет на код, скомпилированный для сборки выпуска. Только драйверы в режиме ядра могут вызывать подпрограмму KdPrintEx .

Комплект драйверов Windows (WDK) 8 и WDK 7 управляют константой препроцессора DBG соответствующим образом для отладочных (проверка) и выпусков (бесплатных). Дополнительные сведения см. в разделах Условная компиляция и Среда сборки.

KdPrintEx либо передает указанную строку отладчику ядра, либо вообще ничего не делает в зависимости от значений ComponentId, Level и соответствующих масок фильтра компонентов. Дополнительные сведения см. в статье Чтение и фильтрация сообщений отладки.

Если это не является абсолютно необходимым, не следует получать строку из введенных пользователем данных или другого процесса и передавать ее в KdPrintEx. Если вы используете не созданную строку, необходимо убедиться, что это допустимая строка формата и что коды форматирования соответствуют списку аргументов по типу и количеству. Рекомендуется, чтобы все строки формата были статическими и определенными во время компиляции.

Нет верхнего ограничения на размер строки Format или количество аргументов. Однако любой один вызов KdPrintEx будет передавать только 512 байт информации. Существует также ограничение на размер буфера DbgPrint. Дополнительные сведения см. в разделе Буфер DbgPrint и отладчик .

Эта подпрограмма определена в ntddk.h и ndis.h; Идентификаторы фильтров компонентов определяются в dpfilter.h, ndis.h и wdm.h. Включите ntddk.h или ndis.h.

Ниже приведены аргументы.

  • ComponentId [in]

    Указывает компонент, вызывающий эту подпрограмму. Это должен быть один из идентификаторов фильтров имен компонентов, определенных в файле заголовка dpfilter.h. Чтобы избежать смешивания выходных данных драйвера с выходными данными компонентов Windows, следует использовать только следующие значения для ComponentId:

    • DPFLTR_IHVVIDEO_ID

    • DPFLTR_IHVAUDIO_ID

    • DPFLTR_IHVNETWORK_ID

    • DPFLTR_IHVSTREAMING_ID

    • DPFLTR_IHVBUS_ID

    • DPFLTR_IHVDRIVER_ID

  • Формат [in]

    Указывает указатель на печатаемую строку формата. Строка format поддерживает большинство полей спецификации форматаprintf. Однако коды формата Юникода (%C, %S, %lc, %ls, %wc, %ws и %wZ) можно использовать только с IRQL = PASSIVE_LEVEL. Подпрограмма KdPrintEx не поддерживает типы с плавающей запятой (%f, %e, %E, %g, %G, %a или %A).

  • Level [in]

    Указывает серьезность этого сообщения. Это может быть любое 32-разрядное целое число. Значения от 0 до 31 (включительно) обрабатываются иначе, чем значения от 32 до 0xFFFFFFFF. Дополнительные сведения см. в статье Чтение и фильтрация сообщений отладки.

Требования

Требование Значение
Минимальная версия клиента Доступно в Microsoft Windows XP и более поздних версий.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h)
Библиотека NtosKrnl.lib (см. DbgPrintEx.)
DLL NtosKrnl.exe

См. также раздел

DbgPrint

DbgPrintEx

KdPrint