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.
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 |
---|---|
|
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). |
|
Le risorse di memoria insufficienti sono disponibili per completare l'operazione. |
|
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). |
|
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). |
|
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 |