Compartilhar via


Função ReportEventA (winbase.h)

Grava uma entrada no final do log de eventos especificado.

Sintaxe

BOOL ReportEventA(
  [in] HANDLE hEventLog,
  [in] WORD   wType,
  [in] WORD   wCategory,
  [in] DWORD  dwEventID,
  [in] PSID   lpUserSid,
  [in] WORD   wNumStrings,
  [in] DWORD  dwDataSize,
  [in] LPCSTR *lpStrings,
  [in] LPVOID lpRawData
);

Parâmetros

[in] hEventLog

Um identificador para o log de eventos. A função RegisterEventSource retorna esse identificador.

A partir do Windows XP com SP2, esse parâmetro não pode ser um identificador para o log de de segurança do . Para gravar um evento no log de de Segurança do , use a função AuthzReportSecurityEvent.

[in] wType

O tipo de evento a ser registrado. Esse parâmetro pode ser um dos valores a seguir.

Valor Significado
EVENTLOG_SUCCESS
0x0000
Evento de informações
EVENTLOG_AUDIT_FAILURE
0x0010
Evento de Auditoria de Falha
EVENTLOG_AUDIT_SUCCESS
0x0008
Evento de Auditoria de Êxito
EVENTLOG_ERROR_TYPE
0x0001
Evento de erro
EVENTLOG_INFORMATION_TYPE
0x0004
Evento de informações
EVENTLOG_WARNING_TYPE
0x0002
Evento de aviso
 

Para obter mais informações sobre tipos de eventos, consulte Tipos de Eventos.

[in] wCategory

A categoria do evento. Estas são informações específicas da origem; a categoria pode ter qualquer valor. Para obter mais informações, consulte Categorias de Eventos.

[in] dwEventID

O identificador de evento. O identificador de evento especifica a entrada no arquivo de mensagem associado à origem do evento. Para obter mais informações, consulte Identificadores de Eventos.

[in] lpUserSid

Um ponteiro para o identificador de segurança do usuário atual. Esse parâmetro pode ser NULL se o identificador de segurança não for necessário.

[in] wNumStrings

O número de cadeias de caracteres de inserção na matriz apontada pelo parâmetro lpStrings. Um valor zero indica que nenhuma cadeia de caracteres está presente.

[in] dwDataSize

O número de bytes de dados brutos (binários) específicos ao evento a serem gravados no log. Se esse parâmetro for zero, nenhum dado específico do evento estará presente.

[in] lpStrings

Um ponteiro para um buffer que contém uma matriz de cadeias de caracteres terminadas em nulo que são mescladas na mensagem antes que o Visualizador de Eventos exiba a cadeia de caracteres para o usuário. Esse parâmetro deve ser um ponteiro válido (ou NULL), mesmo que wNumStrings seja zero. Cada cadeia de caracteres é limitada a 31.839 caracteres.

Antes do Windows Vista: Cada cadeia de caracteres é limitada a 32 mil caracteres.

[in] lpRawData

Um ponteiro para o buffer que contém os dados binários. Esse parâmetro deve ser um ponteiro válido (ou NULL), mesmo que o parâmetro dwDataSize seja zero.

Valor de retorno

Se a função for bem-sucedida, o valor retornado não será zero, indicando que a entrada foi gravada no log.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError, que retorna um dos seguintes códigos de erro estendidos.

Código de erro Significado
ERROR_INVALID_PARAMETER
Um dos parâmetros não é válido.

Esse erro será retornado no Windows Server 2003 se os dados da mensagem a serem registrados forem muito grandes. Esse erro será retornado pelo servidor RPC no Windows Server 2003 se o parâmetro dwDataSize for maior que 261.991 (0x3ff67).

ERROR_NOT_ENOUGH_MEMORY
Recursos de memória insuficientes estão disponíveis para concluir a operação.
RPC_S_INVALID_BOUND
Os limites da matriz são inválidos.

Esse erro será retornado se os dados da mensagem a serem registrados forem muito grandes. No Windows Vista e posterior, esse erro será retornado se o parâmetro dwDataSize for maior que 61.440 (0xf000).

RPC_X_BAD_STUB_DATA
O stub recebeu dados incorretos.

Esse erro será retornado no Windows XP se os dados da mensagem a serem registrados forem muito grandes. Esse erro será retornado pelo servidor RPC no Windows XP, se o parâmetro dwDataSize for maior que 262.143 (0x3ffff).

Outros
Use FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Observações

Essa função é usada para registrar um evento em log. A entrada é gravada no final do log configurado para a origem identificada pelo parâmetro hEventLog. A função ReportEvent adiciona o tempo, o comprimento da entrada e os deslocamentos antes de armazenar a entrada no log. Para habilitar a função para adicionar o nome de usuário, você deve fornecer o SID do usuário no parâmetro lpUserSid.

Há limites de tamanho diferentes no tamanho dos dados da mensagem que podem ser registrados dependendo da versão do Windows usada pelo cliente em que o aplicativo é executado e o servidor em que a mensagem é registrada. O servidor é determinado pelo parâmetro lpUNCServerName passado para a função RegisterEventSource. Erros diferentes são retornados quando o limite de tamanho é excedido que dependem da versão do Windows.

Se a cadeia de caracteres que você registra contiver %n, em que n for um valor inteiro (por exemplo, %1), o visualizador de eventos o tratará como uma cadeia de caracteres de inserção. Como um endereço IPv6 pode conter essa sequência de caracteres, você deve fornecer um especificador de formato (! S!) para registrar uma mensagem de evento que contenha um endereço IPv6. Esse especificador informa ao código de formatação para usar a cadeia de caracteres literalmente e não executar nenhuma expansão adicional (por exemplo, "meu endereço IPv6 é: %1! S!").

Exemplos

Para obter um exemplo, consulte Relatar umde eventos.

Nota

O cabeçalho winbase.h define ReportEvent como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winbase.h (inclua Windows.h)
biblioteca Advapi32.lib
de DLL Advapi32.dll

Consulte também

ClearEventLog

CloseEventLog

formato de arquivo de log de eventos

Funções de registro em log de eventos

OpenEventLog

ReadEventLog

RegisterEventSource