Макрос 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по