Partager via


ReportEventW, fonction (winbase.h)

Écrit une entrée à la fin du journal des événements spécifié.

Syntaxe

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

Paramètres

[in] hEventLog

Handle dans le journal des événements. La fonction RegisterEventSource retourne ce handle.

À compter de Windows XP avec SP2, ce paramètre ne peut pas être un handle dans le journal de sécurité . Pour écrire un événement dans le journal security , utilisez la fonction AuthzReportSecurityEvent.

[in] wType

Type d’événement à journaliser. Ce paramètre peut être l’une des valeurs suivantes.

Valeur Signification
EVENTLOG_SUCCESS
0x0000
Événement d’informations
EVENTLOG_AUDIT_FAILURE
0x0010
Événement d’audit d’échec
EVENTLOG_AUDIT_SUCCESS
0x0008
Événement Success Audit
EVENTLOG_ERROR_TYPE
0x0001
Événement d’erreur
EVENTLOG_INFORMATION_TYPE
0x0004
Événement d’informations
EVENTLOG_WARNING_TYPE
0x0002
Événement d’avertissement
 

Pour plus d’informations sur les types d’événements, consultez types d’événements.

[in] wCategory

Catégorie d’événement. Il s’agit d’informations spécifiques à la source ; la catégorie peut avoir n’importe quelle valeur. Pour plus d’informations, consultez catégories d’événements.

[in] dwEventID

Identificateur d’événement. L’identificateur d’événement spécifie l’entrée dans le fichier de message associé à la source d’événement. Pour plus d’informations, consultez Identificateurs d’événements.

[in] lpUserSid

Pointeur vers l’identificateur de sécurité de l’utilisateur actuel. Ce paramètre peut être NULL si l’identificateur de sécurité n’est pas requis.

[in] wNumStrings

Nombre de chaînes d’insertion dans le tableau pointés par le paramètre lpStrings. La valeur zéro indique qu’aucune chaîne n’est présente.

[in] dwDataSize

Nombre d’octets de données brutes (binaires) spécifiques à l’événement à écrire dans le journal. Si ce paramètre est égal à zéro, aucune donnée spécifique à l’événement n’est présente.

[in] lpStrings

Pointeur vers une mémoire tampon contenant un tableau de chaînes terminées par null fusionnées dans le message avant que l’Observateur d’événements affiche la chaîne à l’utilisateur. Ce paramètre doit être un pointeur valide (ou NULL), même si wNumStrings est égal à zéro. Chaque chaîne est limitée à 31 839 caractères.

Avant Windows Vista : Chaque chaîne est limitée à 32 000 caractères.

[in] lpRawData

Pointeur vers la mémoire tampon contenant les données binaires. Ce paramètre doit être un pointeur valide (ou NULL), même si le paramètre dwDataSize est égal à zéro.

Valeur de retour

Si la fonction réussit, la valeur de retour est différente de zéro, indiquant que l’entrée a été écrite dans le journal.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError, qui retourne l’un des codes d’erreur étendus suivants.

Code d’erreur Signification
ERROR_INVALID_PARAMETER
L’un des paramètres n’est pas valide.

Cette erreur est retournée sur Windows Server 2003 si les données de message à journaliser sont trop volumineuses. Cette erreur est retournée par le serveur RPC sur Windows Server 2003 si le paramètre dwDataSize est supérieur à 261 991 (0x3ff67).

ERROR_NOT_ENOUGH_MEMORY
Les ressources de mémoire insuffisantes sont disponibles pour terminer l’opération.
RPC_S_INVALID_BOUND
Les limites de tableau ne sont pas valides.

Cette erreur est retournée si les données de message à journaliser sont trop volumineuses. Sur Windows Vista et versions ultérieures, cette erreur est retournée si le paramètre dwDataSize est supérieur à 61 440 (0xf000).

RPC_X_BAD_STUB_DATA
Le stub a reçu des données incorrectes.

Cette erreur est retournée sur Windows XP si les données de message à journaliser sont trop volumineuses. Cette erreur est retournée par le serveur RPC sur Windows XP, si le paramètre dwDataSize est supérieur à 262 143 (0x3ffff).

autres
Utilisez formatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

Cette fonction est utilisée pour journaliser un événement. L’entrée est écrite à la fin du journal configuré pour la source identifiée par le paramètre hEventLog. La fonction ReportEvent ajoute l’heure, la longueur de l’entrée et les décalages avant de stocker l’entrée dans le journal. Pour activer la fonction pour ajouter le nom d’utilisateur, vous devez fournir le SID de l’utilisateur dans le paramètre lpUserSid.

Il existe des limites de taille différentes sur la taille des données de message qui peuvent être journalisées en fonction de la version de Windows utilisée par le client où l’application est exécutée et le serveur où le message est journalisé. Le serveur est déterminé par le paramètre lpUNCServerName passé à la fonction RegisterEventSource. Différentes erreurs sont retournées lorsque la limite de taille est dépassée, qui dépendent de la version de Windows.

Si la chaîne que vous journalise contient %n, où n est une valeur entière (par exemple, %1), l’observateur d’événements le traite comme une chaîne d’insertion. Étant donné qu’une adresse IPv6 peut contenir cette séquence de caractères, vous devez fournir un spécificateur de format (! S!) pour consigner un message d’événement qui contient une adresse IPv6. Ce spécificateur indique au code de mise en forme d’utiliser littéralement la chaîne et n’effectue pas d’expansions supplémentaires (par exemple, « mon adresse IPv6 est : %1! S!").

Exemples

Pour obtenir un exemple, consultez Reporting an Event.

Note

L’en-tête winbase.h définit ReportEvent en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winbase.h (inclure Windows.h)
bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

ClearEventLog

closeEventLog

format de fichier journal d’événements

fonctions de journalisation des événements

OpenEventLog

ReadEventLog

RegisterEventSource