Macro KdPrint (wdm.h)

La macro KdPrint envoie un message au débogueur du noyau.

KdPrint envoie un message uniquement si les conditions que vous spécifiez s’appliquent. Plus d’informations dans la section ci-dessous.

Un appel à KdPrint nécessite une double parenthèse.

Syntaxe

void KdPrint(
  [in]  _x_
);

Paramètres

[in] _x_

Spécifie un pointeur vers la chaîne de format à imprimer. La chaîne Format prend en charge la majeure partie de la syntaxe de spécification de formatde style printf. Toutefois, les codes de format Unicode (%C, %S, %lc, %ls, %wc, %ws et %wZ) ne peuvent être utilisés qu’avec IRQL = PASSIVE_LEVEL. La routine KdPrint ne prend en charge aucun des types à virgule flottante (%f, %e, %E, %g, %G, %a ou %A).

Valeur de retour

None

Remarques

KdPrint est identique à la routine DbgPrint dans le code compilé pour une configuration de débogage. Cette routine n’a aucun effet si elle est compilée pour une configuration de mise en production. Seuls les pilotes en mode noyau peuvent appeler la routine KdPrint .

KdPrint envoie un message uniquement si certaines conditions s’appliquent. Plus précisément, il se comporte comme KdPrintEx avec le composant DEFAULT et un niveau d’importance du message de DPFLTR_INFO_LEVEL. En d’autres termes, les deux appels de fonction suivants sont identiques :

KdPrint (( Format, arguments ))

KdPrintEx (( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments ))

Pour plus d’informations sur le filtrage des messages, les composants et le niveau d’importance des messages, consultez Lecture et filtrage des messages de débogage.

Quelle que soit la version de Windows que vous utilisez, il est recommandé d’utiliser KdPrintEx au lieu de KdPrint, car KdPrintEx vous permet de contrôler les conditions dans lesquelles le message est envoyé.

Sauf si cela est absolument nécessaire, vous ne devez pas obtenir de chaîne à partir d’une entrée utilisateur ou d’un autre processus et la passer à KdPrint. Si vous utilisez une chaîne que vous n’avez pas créée, vous devez vérifier qu’il s’agit d’une chaîne de format valide et que les codes de format correspondent à la liste d’arguments en type et en quantité. La meilleure pratique de codage consiste à ce que toutes les chaînes de format soient statiques et définies au moment de la compilation.

Il n’existe aucune limite supérieure à la taille de la chaîne Format ou au nombre d’arguments. Toutefois, tout appel unique à KdPrint ne transmet que 512 octets d’informations. Il existe également une limite à la taille de la mémoire tampon DbgPrint . Pour plus d’informations, consultez La mémoire tampon DbgPrint et le débogueur .

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (inclure Wdm.h)
Bibliothèque NtosKrnl.lib (voir DbgPrint.)
DLL NtosKrnl.exe

Voir aussi

DbgPrint

DbgPrintEx

KdPrintEx