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


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

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

Для вызова KdPrintEx требуются двойные скобки.

Синтаксис

void KdPrintEx(
   _x_
);

Параметры

_x_

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

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

Никакой

Замечания

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

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

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

Не существует верхнего предела размера строки формата или количества аргументов. Однако любой один вызов 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]

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

  • Уровень [in]

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows XP и более поздних версиях.
целевая платформа Настольный
заголовка wdm.h (include Wdm.h)
библиотеки NtosKrnl.lib (See DbgPrintEx.)
DLL NtosKrnl.exe

См. также

DbgPrint

DbgPrintEx

KdPrint