Condividi tramite


Funzione ReportEventW (winbase.h)

Scrive una voce alla fine del registro eventi specificato.

Sintassi

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

Parametri

[in] hEventLog

Handle per il registro eventi. La funzione RegisterEventSource restituisce questo handle.

A partire da Windows XP con SP2, questo parametro non può essere un handle per il log sicurezza . Per scrivere un evento nel log Security, usare la funzione AuthzReportSecurityEvent.

[in] wType

Tipo di evento da registrare. Questo parametro può essere uno dei valori seguenti.

Valore Significato
EVENTLOG_SUCCESS
0x0000
Evento informativo
EVENTLOG_AUDIT_FAILURE
0x0010
Evento Audit degli errori
EVENTLOG_AUDIT_SUCCESS
0x0008
Evento Success Audit
EVENTLOG_ERROR_TYPE
0x0001
Evento di errore
EVENTLOG_INFORMATION_TYPE
0x0004
Evento informativo
EVENTLOG_WARNING_TYPE
0x0002
Evento di avviso
 

Per altre informazioni sui tipi di evento, vedere tipi di evento.

[in] wCategory

Categoria di eventi. Si tratta di informazioni specifiche dell'origine; la categoria può avere qualsiasi valore. Per altre informazioni, vedere categorie di eventi.

[in] dwEventID

Identificatore dell'evento. L'identificatore dell'evento specifica la voce nel file di messaggio associato all'origine evento. Per altre informazioni, vedere identificatori di evento .

[in] lpUserSid

Puntatore all'identificatore di sicurezza dell'utente corrente. Questo parametro può essere null se l'identificatore di sicurezza non è obbligatorio.

[in] wNumStrings

Numero di stringhe di inserimento nella matrice a cui punta il parametro lpStrings. Un valore pari a zero indica che non sono presenti stringhe.

[in] dwDataSize

Numero di byte di dati non elaborati (binari) specifici dell'evento da scrivere nel log. Se questo parametro è zero, non sono presenti dati specifici dell'evento.

[in] lpStrings

Puntatore a un buffer contenente una matrice di stringhe con terminazione Null unite nel messaggio prima che visualizzatore eventi visualizzi la stringa all'utente. Questo parametro deve essere un puntatore valido (o NULL), anche se wNumStrings è zero. Ogni stringa è limitata a 31.839 caratteri.

Prima di Windows Vista: Ogni stringa è limitata a 32.000 caratteri.

[in] lpRawData

Puntatore al buffer contenente i dati binari. Questo parametro deve essere un puntatore valido (o NULL), anche se il parametro dwDataSize è zero.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero, a indicare che la voce è stata scritta nel log.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError, che restituisce uno dei codici di errore estesi seguenti.

Codice di errore Significato
ERROR_INVALID_PARAMETER
Uno dei parametri non è valido.

Questo errore viene restituito in Windows Server 2003 se i dati del messaggio da registrare sono troppo grandi. Questo errore viene restituito dal server RPC in Windows Server 2003 se il parametro dwDataSize è maggiore di 261.991 (0x3ff67).

ERROR_NOT_ENOUGH_MEMORY
Per completare l'operazione sono disponibili risorse di memoria insufficienti.
RPC_S_INVALID_BOUND
I limiti della matrice non sono validi.

Questo errore viene restituito se i dati del messaggio da registrare sono troppo grandi. In Windows Vista e versioni successive questo errore viene restituito se il parametro dwDataSize è maggiore di 61.440 (0xf000).

RPC_X_BAD_STUB_DATA
Lo stub ha ricevuto dati non valido.

Questo errore viene restituito in Windows XP se i dati del messaggio da registrare sono troppo grandi. Questo errore viene restituito dal server RPC in Windows XP, se il parametro dwDataSize è maggiore di 262.143 (0x3ffff).

Altro
Usare FormatMessage per ottenere la stringa del messaggio per l'errore restituito.

Osservazioni

Questa funzione viene usata per registrare un evento. La voce viene scritta alla fine del log configurato per l'origine identificata dal parametro hEventLog. La funzione ReportEvent aggiunge l'ora, la lunghezza della voce e gli offset prima di archiviare la voce nel log. Per abilitare la funzione per aggiungere il nome utente, è necessario specificare il SID dell'utente nel parametro lpUserSid.

Esistono limiti di dimensione diversi per le dimensioni dei dati del messaggio che possono essere registrati a seconda della versione di Windows usata sia dal client in cui viene eseguita l'applicazione che dal server in cui viene registrato il messaggio. Il server è determinato dal parametro lpUNCServerName passato alla funzione RegisterEventSource . Vengono restituiti errori diversi quando viene superato il limite di dimensioni che dipendono dalla versione di Windows.

Se la stringa di log contiene %n, dove n è un valore intero (ad esempio, %1), il visualizzatore eventi lo considera come stringa di inserimento. Poiché un indirizzo IPv6 può contenere questa sequenza di caratteri, è necessario fornire un identificatore di formato (! S!) per registrare un messaggio di evento contenente un indirizzo IPv6. Questo identificatore indica al codice di formattazione di usare la stringa letteralmente e non eseguire altre espansioni, ad esempio "l'indirizzo IPv6 è: %1! S!").

Esempi

Per un esempio, vedere Segnalazione di un evento.

Nota

L'intestazione winbase.h definisce ReportEvent come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winbase.h (include Windows.h)
libreria Advapi32.lib
dll Advapi32.dll

Vedere anche

ClearEventLog

CloseEventLog

formato di file del registro eventi

Funzioni di registrazione eventi

OpenEventLog

ReadEventLog

RegisterEventSource