Enviando saída para o depurador
O modo de usuário e o código do modo kernel usam rotinas diferentes para enviar a saída para o depurador.
User-Mode rotinas de saída
A rotina OutputDebugString envia uma cadeia de caracteres terminada em nulo para o depurador do processo de chamada. Em um driver de modo de usuário, OutputDebugString exibe a cadeia de caracteres na janela Comando do Depurador. Se um depurador não estiver em execução, essa rotina não terá efeito. OutputDebugString não dá suporte aos argumentos variáveis de uma cadeia de caracteres formatada printf .
O protótipo dessa rotina é o seguinte:
VOID OutputDebugString(
LPCTSTR lpOutputString
);
Para obter a documentação completa dessa rotina, consulte Comunicando-se com o depurador.
Kernel-Mode rotinas de saída
A rotina DbgPrint exibe a saída na janela do depurador. Essa rotina dá suporte aos parâmetros básicos de formato printf . Somente drivers de modo kernel podem chamar DbgPrint.
A rotina DbgPrintEx é semelhante a DbgPrint, mas permite que você "marque" suas mensagens. Ao executar o depurador, você pode permitir que somente as mensagens com determinadas marcas sejam enviadas. Isso permite que você exiba apenas as mensagens nas quais você está interessado. Para obter detalhes, consulte Lendo e filtrando mensagens de depuração.
As macros KdPrint e KdPrintEx são idênticas a DbgPrint e DbgPrintEx, respectivamente, quando compiladas no ambiente de build verificado. Quando compilados no ambiente de build gratuito, eles não têm efeito.