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.
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 |
---|---|
|
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). |
|
Les ressources de mémoire sont insuffisantes pour terminer l’opération. |
|
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). |
|
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). |
|
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
Format du fichier journal des événements