Función DbgPrint (wdm.h)
La rutina de 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 de admite la mayoría de los campos de especificación de formato printf-style . Sin embargo, los códigos de formato Unicode (%C, %S, %lc, %ls, %wc, %wsy %wZ) solo se pueden usar con IRQL = PASSIVE_LEVEL. La rutina de dbgPrint de no admite ninguno de los tipos de punto flotante (%f, %e, %E, %g, %G, %ao %A).
...
Especifica argumentos para la cadena de formato, como en printf.
Valor devuelto
Si se ejecuta correctamente, dbgPrint devuelve el STATUS_SUCCESS de código NTSTATUS; de lo contrario, devuelve el código de error adecuado.
Observaciones
se puede llamar a dbgPrint y dbgPrintEx en IRQL<=DIRQL. Sin embargo, los códigos de formato Unicode (%C, %S, %lc, %ls, %wc, %wsy %wZ) solo se pueden usar en IRQL=PASSIVE_LEVEL. Además, dado que el depurador usa interrupciones de interprocesamiento (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 de 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 Format sean estáticas y definidas en tiempo de compilación.
No hay ningún límite superior para el tamaño del Formato cadena 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 Búfer de DbgPrint y el depurador para obtener más información.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | wdm.h (incluya Wdm.h) |
biblioteca de | NtDll.lib (modo de usuario); NtosKrnl.lib (modo kernel) |
DLL de | NtDll.dll (modo de usuario); NtosKrnl.exe (modo kernel) |
irQL | IRQL <= DIRQL (consulte la sección Comentarios) |