Función DbgPrint (wdm.h)
La rutina DbgPrint envía un mensaje al depurador de kernel cuando se aplican las condiciones que especifique (consulte la sección Comentarios a continuación).
Sintaxis
ULONG DbgPrint(
PCSTR Format,
...
);
Parámetros
Format
Especifica un puntero a la cadena de formato que se va a imprimir. La cadena Format admite la mayoría de los campos de especificación de formato de estiloprintf. Sin embargo, los códigos de formato Unicode (%C, %S, %lc, %ls, %wc, %ws y %wZ) solo se pueden usar con IRQL = PASSIVE_LEVEL. La rutina DbgPrint no admite ninguno de los tipos de punto flotante (%f, %e, %E, %g, %G, %a o %A).
...
Especifica argumentos para la cadena de formato, como en printf.
Valor devuelto
Si se ejecuta correctamente, DbgPrint devuelve el código NTSTATUS STATUS_SUCCESS; de lo contrario, devuelve el código de error adecuado.
Comentarios
Se puede llamar a DbgPrint y DbgPrintEx en IRQL<=DIRQL. Sin embargo, los códigos de formato Unicode (%C, %S, %lc, %ls, %wc, %ws y %wZ) solo se pueden usar en IRQL=PASSIVE_LEVEL. Además, dado que el depurador usa interrupciones de interproceso (IP) para comunicarse con otros procesadores, llamar a DbgPrint en IRQL>DIRQL puede provocar interbloqueos.
Solo los controladores en modo kernel pueden llamar a la rutina DbgPrint .
DbgPrint envía un mensaje solo si se aplican determinadas condiciones. En concreto, se comporta como la rutina DbgPrintEx con el componente DEFAULT y un nivel de importancia de mensaje de DPFLTR_INFO_LEVEL. En otras palabras, las dos llamadas de función siguientes son idénticas:
DbgPrint ( Format, arguments )
DbgPrintEx ( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments )
Para obtener más información sobre el filtrado de mensajes, los componentes y el nivel de importancia del mensaje, consulte Lectura y filtrado de mensajes de depuración.
Se recomienda usar DbgPrintEx en lugar de DbgPrint, ya que esto le permite controlar las condiciones en las que se envía el mensaje.
A menos que sea absolutamente necesario, no debe obtener una cadena de la entrada del usuario u otro proceso y pasarla a DbgPrint. Si usa una cadena que no creó, debe comprobar que se trata de una cadena de formato válida y que los códigos de formato coinciden con la lista de argumentos en tipo y cantidad. El procedimiento de codificación recomendado es que todas las cadenas de formato sean estáticas y definidas en tiempo de compilación.
No hay ningún límite superior para el tamaño de la cadena Format o el número de argumentos. Sin embargo, cualquier llamada única a DbgPrint solo transmitirá 512 bytes de información. También hay un límite para el tamaño del búfer dbgPrint. Consulte DbgPrint Buffer y Debugger para obtener más información.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h) |
Library | NtDll.lib (modo de usuario); NtosKrnl.lib (modo kernel) |
Archivo DLL | NtDll.dll (modo de usuario); NtosKrnl.exe (modo kernel) |
IRQL | IRQL <= DIRQL (consulte la sección Comentarios) |