Funzione ReportEventA (winbase.h)

Scrive una voce alla fine del registro eventi specificato.

Sintassi

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
);

Parametri

[in] hEventLog

Handle nel 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 di sicurezza . Per scrivere un evento nel log di sicurezza , usare la funzione AuthzReportSecurityEvent .

[in] wType

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

Valore Significato
EVENTLOG_SUCCESS
0x0000
Evento informativo
EVENTLOG_AUDIT_FAILURE
0x0010
Evento Audit degli errori
EVENTLOG_AUDIT_SUCCESS
0x0008
Evento Controllo esito positivo
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 eventi, vedere Tipi di eventi.

[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 al messaggio prima di Visualizzatore eventi visualizza 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 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, che indica che la voce è stata scritta nel log.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni sull'errore estese, 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
Le risorse di memoria insufficienti sono disponibili per completare l'operazione.
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).

Altri
Usare FormatMessage per ottenere la stringa di messaggio per l'errore restituito.

Commenti

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 il tempo, 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 dimensioni diverse sulle dimensioni dei dati del messaggio che possono essere registrati a seconda della versione di Windows usata da entrambi i client in cui viene eseguita l'applicazione e il server in cui viene registrato il messaggio. Il server viene 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 del 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 specificare 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 ulteriori espansioni,ad esempio "l'indirizzo IPv6 è: %1! S!").

Esempio

Per un esempio, vedere Creazione di report 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

ClearEventLog

CloseEventLog

Formato file di log eventi

Funzioni di registrazione eventi

OpenEventLog

ReadEventLog

RegisterEventSource