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
A partire da Windows XP con SP2, questo parametro non può essere un handle per il log sicurezza
[in] wType
Tipo di evento da registrare. Questo parametro può essere uno dei valori seguenti.
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 |
---|---|
|
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 |
|
Per completare l'operazione sono disponibili risorse di memoria insufficienti. |
|
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 |
|
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 |
|
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
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
formato di file del registro eventi