Als eine der wichtigsten Neuerungen unterstützt das neue Ereignisprotokoll zahlreiche Datentypen. Soweit diese oberhalb der Programmierschnittstelle Verwendung finden, sind sie in einer C-Headerdatei (WinEvt.h) und natürlich im Microsoft Developer Network dokumentiert.
| Code | Name | Funktion |
|---|---|---|
| 0x00 | TypeNull | unterdrückt Element bei einer OptionalSubstitution |
| 0x01 | TypeString | UCS2-LE |
| 0x02 | TypeAnsiString | |
| 0x03 | TypeSByte | vorzeichenbehaftete 8bit-Ganzzahl |
| 0x04 | TypeByte | vorzeichenlose 8bit-Ganzzahl |
| 0x05 | TypeInt16 | vorzeichenbehaftete 16bit-Ganzzahl |
| 0x06 | TypeUInt16 | vorzeichenlose 16bit-Ganzzahl |
| 0x07 | TypeInt32 | vorzeichenbehaftete 32bit-Ganzzahl |
| 0x08 | TypeUInt32 | vorzeichenlose 32bit-Ganzzahl |
| 0x09 | TypeInt64 | vorzeichenbehaftete 64bit-Ganzzahl |
| 0x0a | TypeUInt64 | vorzeichenlose 64bit-Ganzzahl |
| 0x0b | TypeSignle | Gleitkommazahl einfacher Genauigkeit |
| 0x0c | TypeDouble | Gleitkommazahl doppelter Genauigkeit |
| 0x0d | TypeBoolean | wahr/falsch, benötigt 4 Bytes |
| 0x0e | TypeBinary | Strom binärer Daten |
| 0x0f | TypeGuid | lobal unique identifier, 16 Bytes |
| 0x10 | TypeSizeT | size_t, entweder 32 oder 64bit |
| 0x11 | TypeFileTime | 64 bit, 100ns seit 1601-01-01 00:00:00 |
| 0x12 | TypeSysTime | 32bit, Sekunden seit 1970-01-01 00:00:00 |
| 0x13 | TypeSid | security identifier (variable Länge) |
| 0x14 | TypeHexInt32 | 32bit-Ganzzahl in hexadezimaler Darstellung |
| 0x15 | TypeHexInt64 | 64bit-Ganzzahl in hexadezimaler Darstellung |
| 0x20 | TypeEvtHandle | Ereignisprotokoll-Objekt |
| 0x21 | TypeEvtBXml | Ereignismeldung als binäres XML (undokumentiert) |
| 0x23 | TypeEvtXml | Ereignismeldung als XML |
Ist das höchstwertigste Bit des Codes gesetzt, so zeigt dies ein Array des entsprechenden Typs anstelle eines einzelnen Elements an. Bislang habe ich jedoch nur Arrays von Strings (0x81) beobachtet.
