Condividi tramite


Macro KdPrintEx (wdm.h)

La macro KdPrintEx invia una stringa al debugger del kernel se vengono soddisfatte le condizioni specificate.

Una chiamata a KdPrintEx richiede doppie parentesi.

Sintassi

void KdPrintEx(
   _x_
);

Parametri

_x_

Specifica gli argomenti per la stringa di formato, come in printf.

Valore restituito

Nessuno

Osservazioni

KdPrintEx è identico alla routine DbgPrintEx compilata per una configurazione di debug. Questa routine non ha alcun effetto nel codice compilato per una build di versione. Solo i driver in modalità kernel possono chiamare la routine KdPrintEx .

KdPrintEx passa la stringa specificata al debugger del kernel o non esegue alcuna operazione, a seconda dei valori di ComponentId, Levele delle maschere di filtro dei componenti corrispondenti. Per informazioni dettagliate, vedere lettura e filtro dei messaggi di debug.

A meno che non sia assolutamente necessario, non è consigliabile ottenere una stringa dall'input dell'utente o da un altro processo e passarla a KdPrintEx. Se si usa una stringa che non è stata creata, è necessario verificare che si tratta di una stringa di formato valida e che i codici di formato corrispondano all'elenco di argomenti nel tipo e nella quantità. La procedura consigliata per la codifica è che tutte le stringhe formato siano statiche e definite in fase di compilazione.

Non esiste alcun limite massimo per le dimensioni della stringa Formato o del numero di argomenti. Tuttavia, qualsiasi singola chiamata a KdPrintEx trasmetterà solo 512 byte di informazioni. Esiste anche un limite per le dimensioni del buffer DbgPrint. Per informazioni dettagliate, vedere Buffer DbgPrint e debugger.

Questa routine è definita in ntddk.h e ndis.h; Gli ID filtro dei componenti sono definiti in dpfilter.h, ndis.h e wdm.h. Includere ntddk.h o ndis.h.

Ecco gli argomenti:

  • ComponentId [in]

    Specifica il componente che chiama questa routine. Deve essere uno degli ID filtro nome componente definiti nel file di intestazione dpfilter.h. Per evitare di combinare l'output del driver con l'output dei componenti di Windows, è consigliabile usare solo i valori seguenti per ComponentId:

    • DPFLTR_IHVVIDEO_ID

    • DPFLTR_IHVAUDIO_ID

    • DPFLTR_IHVNETWORK_ID

    • DPFLTR_IHVSTREAMING_ID

    • DPFLTR_IHVBUS_ID

    • DPFLTR_IHVDRIVER_ID

  • Formato [in]

    Specifica un puntatore alla stringa di formato da stampare. La stringa di formato supporta la maggior parte dei campi di specificaformato . Tuttavia, i codici di formato Unicode (%C, %S, %lc, %ls, %wc, %wse %wZ) possono essere usati solo con IRQL = PASSIVE_LEVEL. La routine KdPrintEx non supporta alcun tipo a virgola mobile (%f, %e, %E, %g, %G, %ao %A).

  • Livello [in]

    Specifica la gravità del messaggio. Può trattarsi di un numero intero a 32 bit. I valori compresi tra 0 e 31 (inclusi) vengono trattati in modo diverso rispetto ai valori compresi tra 32 e 0xFFFFFFFF. Per informazioni dettagliate, vedere lettura e filtro dei messaggi di debug.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Microsoft Windows XP e versioni successive.
piattaforma di destinazione Desktop
intestazione wdm.h (include Wdm.h)
libreria NtosKrnl.lib (vedere DbgPrintEx.)
dll NtosKrnl.exe

Vedere anche

DbgPrint

DbgPrintEx

KdPrint