Compartir a través de


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)

Consulte también

DbgPrintEx

KdPrint

KdPrintEx