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é
[in] wType
Type d’événement à journaliser. Ce paramètre peut être l’une des 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 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 |
---|---|
|
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). |
|
Les ressources de mémoire insuffisantes sont disponibles pour terminer l’opération. |
|
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). |
|
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). |
|
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
format de fichier journal d’événements