Fonction ReportEventA (winbase.h)

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

Syntaxe

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

Paramètres

[in] hEventLog

Handle du 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 pour le journal de sécurité . Pour écrire un événement dans le journal de sécurité , utilisez la fonction AuthzReportSecurityEvent .

[in] wType

Type d’événement à consigner. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
EVENTLOG_SUCCESS
0x0000
Événement d’information
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’information
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 de l'événement. L’identificateur d’événement spécifie l’entrée dans le fichier de message associé à la source de l’é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 vers lequel pointe 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 qui sont fusionnées dans le message avant 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 retournée

Si la fonction réussit, la valeur de retour est différente de zéro, ce qui indique 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 à enregistrer 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 sont insuffisantes pour terminer l’opération.
RPC_S_INVALID_BOUND
Les limites du tableau ne sont pas valides.

Cette erreur est retournée si les données de message à enregistrer 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 à enregistrer 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 de 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 permettre à la fonction d’ajouter le nom d’utilisateur, vous devez fournir le SID de l’utilisateur dans le paramètre lpUserSid .

Il existe différentes limites de taille 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épend de la version de Windows.

Si la chaîne que vous journalisez contient %n, où n est une valeur entière (par exemple, %1), l’observateur d’événements la 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 enregistrer un message d’événement qui contient une adresse IPv6. Ce spécificateur indique au code de mise en forme d’utiliser la chaîne littéralement et de ne pas effectuer d’autres expansions (par exemple, « mon adresse IPv6 est : %1 ! S!").

Exemples

Pour obtenir un exemple, consultez Création d’un événement.

Notes

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. La combinaison 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

ClearEventLog

CloseEventLog

Format du fichier journal des événements

Fonctions de journalisation des événements

OpenEventLog

ReadEventLog

RegisterEventSource