(winevt.h) EVT_VARIANT 结构

包含事件数据或属性值。

语法

typedef struct _EVT_VARIANT {
  union {
    BOOL       BooleanVal;
    INT8       SByteVal;
    INT16      Int16Val;
    INT32      Int32Val;
    INT64      Int64Val;
    UINT8      ByteVal;
    UINT16     UInt16Val;
    UINT32     UInt32Val;
    UINT64     UInt64Val;
    float      SingleVal;
    double     DoubleVal;
    ULONGLONG  FileTimeVal;
    SYSTEMTIME *SysTimeVal;
    GUID       *GuidVal;
    LPCWSTR    StringVal;
    LPCSTR     AnsiStringVal;
    PBYTE      BinaryVal;
    PSID       SidVal;
    size_t     SizeTVal;
    BOOL       *BooleanArr;
    INT8       *SByteArr;
    INT16      *Int16Arr;
    INT32      *Int32Arr;
    INT64      *Int64Arr;
    UINT8      *ByteArr;
    UINT16     *UInt16Arr;
    UINT32     *UInt32Arr;
    UINT64     *UInt64Arr;
    float      *SingleArr;
    double     *DoubleArr;
    FILETIME   *FileTimeArr;
    SYSTEMTIME *SysTimeArr;
    GUID       *GuidArr;
    LPWSTR     *StringArr;
    LPSTR      *AnsiStringArr;
    PSID       *SidArr;
    size_t     *SizeTArr;
    EVT_HANDLE EvtHandleVal;
    LPCWSTR    XmlVal;
    LPCWSTR    *XmlValArr;
  };
  DWORD Count;
  DWORD Type;
} EVT_VARIANT, *PEVT_VARIANT;

成员

BooleanVal

一个布尔值。

SByteVal

带符号的 8 位整数值。

Int16Val

带符号的 16 位整数值。

Int32Val

带符号的 32 位整数值。

Int64Val

带符号的 64 位整数值。

ByteVal

8 位无符号整数值。

UInt16Val

16 位无符号整数值。

UInt32Val

32 位无符号整数值。

UInt64Val

64 位无符号整数值。

SingleVal

单精度实值。

DoubleVal

双精度实值。

FileTimeVal

一个 8 字节 FILETIME 值。

SysTimeVal

SYSTEMTIME 值。

GuidVal

一个 16 字节 GUID 值。

StringVal

以 Null 值结束的 Unicode 字符串。

AnsiStringVal

以 null 结尾的 ANSI 字符串值。

BinaryVal

指向十六进制二进制值的指针。

SidVal

4 字节 ASCII 值。 安全标识符 (唯一标识用户或组的 SID) 结构。

SizeTVal

指针地址。 地址的大小 (4 字节或 8 字节) 取决于提供程序是在 32 位还是 64 位操作系统上运行。

BooleanArr

指向布尔值数组的指针。

SByteArr

指向带符号 8 位值的数组的指针。

Int16Arr

指向有符号 16 位值数组的指针。

Int32Arr

指向带符号 32 位值的数组的指针。

Int64Arr

指向带符号 64 位值的数组的指针。

ByteArr

指向无符号 8 位值的数组的指针。

UInt16Arr

指向无符号 16 位值的数组的指针。

UInt32Arr

指向无符号 32 位值的数组的指针。

UInt64Arr

指向无符号 64 位值的数组的指针。

SingleArr

指向单精度实值的数组的指针。

DoubleArr

指向双精度实值的数组的指针。

FileTimeArr

指向 FILETIME 值数组的指针。

SysTimeArr

指向 SYSTEMTIME 值数组的指针。

GuidArr

指向 GUID 值数组的指针。

StringArr

指向以 null 结尾的 Unicode 字符串数组的指针。

AnsiStringArr

指向以 null 结尾的 ANSI 字符串数组的指针。

SidArr

指向 4 字节 ASCII 值数组的指针。

SizeTArr

指向size_t值数组的指针。

EvtHandleVal

EVT_HANDLE值。

XmlVal

XML 字符串值。

XmlValArr

指向 XML 字符串值数组的指针。

Count

值数组中的元素数。 如果 Type 成员设置了EVT_VARIANT_TYPE_ARRAY标志,请使用 Count

Type

一个指定变体数据类型的标志。 有关可能的值,请参阅 EVT_VARIANT_TYPE 枚举。

如果设置了 EVT_VARIANT_TYPE_ARRAY 标志,则变量包含值的数组。 以“Arr”结尾的成员包含值数组。 例如,如果类型为 EvtVarTypeString 并且设置了EVT_VARIANT_TYPE_ARRAY标志,则使用 StringArr 成员访问变体数据。

可以使用 EVT_VARIANT_TYPE_MASK 常量来屏蔽数组位,以确定变体的类型。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 winevt.h

另请参阅

EVT_SYSTEM_PROPERTY_ID

EVT_VARIANT_TYPE

EVT_VARIANT_TYPE_MASK