Compartilhar via


Macro KdPrintEx (wdm.h)

A macro KdPrintEx enviará uma cadeia de caracteres para o depurador de kernel se as condições especificadas forem atendidas.

Uma chamada para KdPrintEx requer parênteses duplos.

Sintaxe

void KdPrintEx(
   _x_
);

Parâmetros

_x_

Especifica argumentos para a cadeia de caracteres de formato, como em printf.

Valor de retorno

Nenhum

Observações

KdPrintEx é idêntico à rotina de DbgPrintEx no código compilado para uma configuração de depuração. Essa rotina não tem efeito no código compilado para um build de versão. Somente drivers de modo kernel podem chamar a rotina de KdPrintEx.

KdPrintEx passa a cadeia de caracteres especificada para o depurador de kernel ou não faz nada, dependendo dos valores de ComponentId, Levele as máscaras de filtro de componente correspondentes. Para obter detalhes, consulte de Leitura e Filtragem de Mensagens de Depuração.

A menos que seja absolutamente necessário, você não deve obter uma cadeia de caracteres da entrada do usuário ou de outro processo e passá-la para KdPrintEx. Se você usar uma cadeia de caracteres que não criou, deverá verificar se essa é uma cadeia de caracteres de formato válida e se os códigos de formato correspondem à lista de argumentos em tipo e quantidade. A melhor prática de codificação é que todas as cadeias de caracteres formatar sejam estáticas e definidas em tempo de compilação.

Não há limite superior para o tamanho da cadeia de caracteres formatar ou o número de argumentos. No entanto, qualquer chamada única para KdPrintEx transmitirá apenas 512 bytes de informações. Há também um limite para o tamanho do buffer DbgPrint. Consulte o buffer DbgPrint e o depurador para obter detalhes.

Essa rotina é definida em ntddk.h e ndis.h; as IDs de filtro de componente são definidas em dpfilter.h, ndis.h e wdm.h. Inclua ntddk.h ou ndis.h.

Aqui estão os argumentos:

  • ComponentId [in]

    Especifica o componente que chama essa rotina. Essa deve ser uma das IDs de filtro de nome do componente definidas no arquivo de cabeçalho dpfilter.h. Para evitar misturar a saída do driver com a saída de componentes do Windows, você deve usar apenas os seguintes valores para ComponentId:

    • DPFLTR_IHVVIDEO_ID

    • DPFLTR_IHVAUDIO_ID

    • DPFLTR_IHVNETWORK_ID

    • DPFLTR_IHVSTREAMING_ID

    • DPFLTR_IHVBUS_ID

    • DPFLTR_IHVDRIVER_ID

  • Formatar [in]

    Especifica um ponteiro para a cadeia de caracteres de formato a ser impressa. A cadeia de caracteres Formatar dá suporte à maior parte dos campos de especificação de formato de dedede impressãode . No entanto, os códigos de formato Unicode (%C, %S, %lc, %ls, %wc, %wse %wZ) só podem ser usados com IRQL = PASSIVE_LEVEL. A rotina de KdPrintEx não dá suporte a nenhum dos tipos de ponto flutuante (%f, %e, %E, %g, %G, %aou %A).

  • Nível [in]

    Especifica a gravidade dessa mensagem. Isso pode ser qualquer inteiro de 32 bits. Os valores entre 0 e 31 (inclusivos) são tratados de forma diferente dos valores entre 32 e 0xFFFFFFFF. Para obter detalhes, consulte de Leitura e Filtragem de Mensagens de Depuração.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Microsoft Windows XP e posterior.
da Plataforma de Destino Área de trabalho
cabeçalho wdm.h (inclua Wdm.h)
biblioteca NtosKrnl.lib (consulte DbgPrintEx.)
de DLL NtosKrnl.exe

Consulte também

DbgPrint

DbgPrintEx

KdPrint