EvtFormatMessage-Funktion (winevt.h)
Formatiert eine Nachrichtenzeichenfolge.
Syntax
BOOL EvtFormatMessage(
[in] EVT_HANDLE PublisherMetadata,
[in] EVT_HANDLE Event,
[in] DWORD MessageId,
[in] DWORD ValueCount,
[in] PEVT_VARIANT Values,
[in] DWORD Flags,
[in] DWORD BufferSize,
[in] LPWSTR Buffer,
[out] PDWORD BufferUsed
);
Parameter
[in] PublisherMetadata
Ein Handle zu den Metadaten des Anbieters, die die Funktion EvtOpenPublisherMetadata zurückgibt. Das Handle fungiert als Formatierungskontext für das Ereignis oder den Nachrichtenbezeichner.
Sie können diesen Parameter auf NULL festlegen, wenn der Windows-Ereignissammlerdienst das Ereignis weitergeleitet hat. Weitergeleitete Ereignisse enthalten einen RenderingInfo-Abschnitt , der die gerenderten Nachrichtenzeichenfolgen enthält. Sie können diesen Parameter auch auf NULL festlegen, wenn die Ereigniseigenschaft, die Sie formatieren, in der datei Winmeta.xml definiert ist (z. B. wenn die Ebene auf "win:Error" festgelegt ist). Im letzten Fall verwendet der Dienst den Winmeta-Anbieter als Formatierungskontext und formatiert nur die Nachrichtenzeichenfolgen, auf die Sie in Ihrem Ereignis verweisen, das in der Winmeta.xml-Datei definiert ist.
[in] Event
Ein Handle zu einem Ereignis. Der Parameter Flags gibt die Nachrichtenzeichenfolge im Ereignis an, das Sie formatieren möchten. Dieser Parameter muss NULL sein, wenn der Parameter "Flags " auf "EvtFormatMessageId" festgelegt ist.
[in] MessageId
Der Ressourcenbezeichner der Nachrichtenzeichenfolge, die Sie formatieren möchten. Rufen Sie die GetPublisherMetadataProperty-Funktion auf, um den Ressourcenbezeichner für eine Nachrichtenzeichenfolge abzurufen. Legen Sie diesen Parameter nur fest, wenn der Flags-Parameter auf EvtFormatMessageId festgelegt ist.
[in] ValueCount
Die Anzahl der Werte im Parameter "Values ".
[in] Values
Ein Array von Einfügewerten, die beim Formatieren der Nachrichtenzeichenfolge des Ereignisses verwendet werden sollen. In der Regel legen Sie diesen Parameter auf NULL fest, und die Funktion ruft die Einfügewerte aus den Ereignisdaten selbst ab. Mit diesem Parameter können Sie das Standardverhalten außer Kraft setzen und die zu verwendenden Einfügewerte angeben. Beispielsweise können Sie diesen Parameter verwenden, wenn Sie eine SID in einen Prinzipalnamen auflösen möchten, bevor Sie den Wert einfügen.
Um die Einfügewerte außer Kraft zu setzen, muss der Parameter "Flags " auf "EvtFormatMessageEvent", " EvtFormatMessageXML" oder "EvtFormatMessageId" festgelegt werden. Wenn Flags auf EvtFormatMessageId festgelegt ist, muss der Ressourcenbezeichner die Nachrichtenzeichenfolge des Ereignisses identifizieren.
[in] Flags
Ein Flag, das die Nachrichtenzeichenfolge im zu formatierenden Ereignis angibt. Mögliche Werte finden Sie in der EVT_FORMAT_MESSAGE_FLAGS-Enumeration .
[in] BufferSize
Die Größe des Pufferpuffers in Zeichen.
[in] Buffer
Ein aufrufergeteilter Puffer, der die formatierte Nachrichtenzeichenfolge empfängt. Sie können diesen Parameter auf NULL festlegen, um die erforderliche Puffergröße zu bestimmen.
[out] BufferUsed
Die Größe in Zeichen des vom Aufrufer zugewiesenen Puffers, den die Funktion verwendet hat, oder die erforderliche Puffergröße, wenn die Funktion mit ERROR_INSUFFICIENT_BUFFER fehlschlägt.
Rückgabewert
Rückgabecode/-wert | Beschreibung |
---|---|
|
Die Funktion wurde erfolgreich ausgeführt. |
|
Fehler bei der Funktion. Rufen Sie die GetLastError-Funktion auf, um den Fehlercode abzurufen. |
Hinweise
Wenn der Dienst versucht, eine Nachricht für ein Ereignis zu finden, sucht der Dienst in den Nachrichtentabellenressourcen des Herausgebers, der vom PublisherMetadata-Parameter angegeben ist. Nachdem die Nachrichten-ID gefunden wurde, werden die folgenden Suchalgorithmen verwendet.
Für Ereignisnachrichten:
- Durchsuchen Sie die datei, die im MessageFileName-Attribut des Anbieterelements angegeben ist.
- Falls nicht gefunden, suchen Sie Systemnachrichten.
- Durchsuchen Sie die Winmeta-Anbieterressourcen.
- Durchsuchen Sie die datei, die im MessageFileName-Attribut des Anbieterelements angegeben ist.
- Durchsuchen Sie die datei, die im MessageFileName-Attribut des Anbieterelements angegeben ist.
- Wenn sie nicht gefunden wurde, durchsuchen Sie die Winmeta-Anbieterressourcen.
- Suchdateien, die im ParameterFileName-Attribut des Anbieterelements von links nach rechts aufgeführt sind.
- Falls nicht gefunden, suchen Sie Systemnachrichten.
Beispiele
Ein Beispiel zur Verwendung dieser Funktion finden Sie unter Formatieren von Ereignisnachrichten und Abrufen der Metadaten eines Anbieters.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [Nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winevt.h |
Bibliothek | Wevtapi.lib |
DLL | Wevtapi.dll |