Код пользовательского режима и режима ядра используют различные подпрограммы для отправки выходных данных в отладчик.
Подпрограмма OutputDebugString отправляет строку, завершающую значение NULL, отладчику вызывающего процесса. В драйвере пользовательского режима OutputDebugString отображается строка в окне команды отладчика. Если отладчик не запущен, эта подпрограмма не влияет.
OutputDebugString не поддерживает аргументы переменной отформатируемой строки printf .
Прототип этой подпрограммы выглядит следующим образом:
VOID OutputDebugString(
LPCTSTR lpOutputString
);
Полные сведения об этой подпрограмме см. в разделе "Взаимодействие с отладчиком".
Рутины вывода Kernel-Mode
Подпрограмма DbgPrint отображает выходные данные в окне отладчика. Эта подпрограмма поддерживает базовые параметры формата printf . Только драйверы в режиме ядра могут вызывать DbgPrint.
Подпрограмма DbgPrintEx похожа на DbgPrint, но позволяет "тегировать" сообщения. При запуске отладчика можно разрешить отправлять только те сообщения с определенными тегами. Это позволяет просматривать только интересующие вас сообщения. Дополнительные сведения см. в разделе "Чтение и фильтрация сообщений отладки".
Макросы KdPrint и KdPrintEx идентичны DbgPrint и DbgPrintEx соответственно при компиляции в отладочной среде сборки. При компиляции в среде бесплатной сборки они не влияют.