Macro KdPrintEx (wdm.h)
La macro KdPrintEx envoie une chaîne au débogueur du noyau si les conditions que vous spécifiez sont remplies.
Un appel à KdPrintEx nécessite deux parenthèses.
Syntaxe
void KdPrintEx(
_x_
);
Paramètres
_x_
Spécifie les arguments de la chaîne de format, comme dans printf .
Valeur de retour
Aucun
Remarques
KdPrintEx est identique à la routine DbgPrintEx dans le code compilé pour une configuration de débogage. Cette routine n’a aucun effet dans le code compilé pour une build de mise en production. Seuls les pilotes en mode noyau peuvent appeler la routine KdPrintEx.
Sauf s’il est absolument nécessaire, vous ne devez pas obtenir une chaîne à partir de l’entrée utilisateur ou d’un autre processus et le transmettre à KdPrintEx. 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 dans le type et la quantité. La meilleure pratique de codage est que toutes les chaînes de format 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 du nombre d’arguments. Toutefois, tout appel unique à KdPrintEx 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 Mémoire tampon DbgPrint et le débogueur.
Cette routine est définie dans ntddk.h et ndis.h ; Les ID de filtre de composant sont définis dans dpfilter.h, ndis.h et wdm.h. Incluez ntddk.h ou ndis.h.
Voici les arguments :
ComponentId [in]
Spécifie le composant appelant cette routine. Il doit s’agir de l’un des ID de filtre de nom de composant définis dans le fichier d’en-tête dpfilter.h. Pour éviter de mélanger la sortie de votre pilote avec la sortie des composants Windows, vous devez utiliser uniquement les valeurs suivantes pour ComponentId:
DPFLTR_IHVVIDEO_ID
DPFLTR_IHVAUDIO_ID
DPFLTR_IHVNETWORK_ID
DPFLTR_IHVSTREAMING_ID
DPFLTR_IHVBUS_ID
DPFLTR_IHVDRIVER_ID
Format [in]
Spécifie un pointeur vers la chaîne de format à imprimer. La chaîne format de
prend en charge la plupart deschamps de spécification de format KdPrintExprintf . Toutefois, les codes de format Unicode (%C, %S, %lc, %ls, %wc, %wset %wZ) ne peuvent être utilisés qu’avec IRQL = PASSIVE_LEVEL. La routine ne prend pas en charge les types à virgule flottante ( %f ,%e ,%E ,%g ,%G ,%a ou%A ).Niveau [in]
Spécifie la gravité de ce message. Il peut s’agir de n’importe quel entier 32 bits. Les valeurs comprises entre 0 et 31 (inclus) sont traitées différemment des valeurs comprises entre 32 et 0xFFFFFFFF. Pour plus d’informations, consultez lecture et filtrage des messages de débogage.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Microsoft Windows XP et versions ultérieures. |
plateforme cible | Bureau |
d’en-tête | wdm.h (include Wdm.h) |
bibliothèque | NtosKrnl.lib (voir DbgPrintEx.) |
DLL | NtosKrnl.exe |