Макрос KdPrint (wdm.h)
Макрос KdPrint отправляет сообщение отладчику ядра.
KdPrint отправляет сообщение, только если применяются указанные условия. Дополнительные сведения см. в разделе ниже.
Для вызова KdPrint требуются двойные скобки.
Синтаксис
void KdPrint(
[in] _x_
);
Параметры
[in] _x_
Указывает указатель на строку формата для печати. Строка format поддерживает большую часть синтаксиса спецификации форматав стиле printf. Однако коды формата Юникода (%C, %S, %lc, %ls, %wc, %ws и %wZ) можно использовать только с IRQL = PASSIVE_LEVEL. Подпрограмма KdPrint не поддерживает типы с плавающей запятой (%f, %e, %E, %g, %G, %a или %A).
Возвращаемое значение
None
Remarks
KdPrint идентичен подпрограмме DbgPrint в коде, который компилируется для конфигурации отладки. Эта подпрограмма не действует при компиляции для конфигурации выпуска. Только драйверы в режиме ядра могут вызывать подпрограмму KdPrint .
KdPrint отправляет сообщение, только если применяются определенные условия. В частности, он ведет себя как KdPrintEx с компонентом DEFAULT и уровнем важности сообщения DPFLTR_INFO_LEVEL. Другими словами, следующие два вызова функций идентичны:
KdPrint (( Format, arguments ))
KdPrintEx (( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments ))
Дополнительные сведения о фильтрации сообщений, компонентах и уровне важности сообщений см. в разделе Чтение и фильтрация сообщений отладки.
Независимо от используемой версии Windows рекомендуется использовать KdPrintEx вместо KdPrint, так как KdPrintEx позволяет управлять условиями отправки сообщения.
Если это не является абсолютно необходимым, не следует получать строку из введенных пользователем данных или другого процесса и передавать ее в KdPrint. Если используется строка, которую вы не создали, необходимо убедиться, что это допустимая строка формата и что коды формата соответствуют списку аргументов по типу и количеству. Рекомендуется, чтобы все строки форматирования были статическими и определенными во время компиляции.
Не существует верхнего предела для размера строки format или количества аргументов. Однако при любом вызове KdPrint будет передаваться только 512 байт информации. Существует также ограничение на размер буфера DbgPrint . Дополнительные сведения см. в разделе Буфер DbgPrint и отладчик .
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h) |
Библиотека | NtosKrnl.lib (см. DbgPrint.) |
DLL | NtosKrnl.exe |