2.2.7 EvtRpcVariant

The EvtRpcVariant structure is defined as follows.

 typedef struct tag_EvtRpcVariant {
   EvtRpcVariantType type;
   DWORD flags;
   [switch_is(type)] union {
     [case(EvtRpcVarTypeNull)] 
       int nullVal;
     [case(EvtRpcVarTypeBoolean)] 
       boolean booleanVal;
     [case(EvtRpcVarTypeUInt32)] 
       DWORD uint32Val;
     [case(EvtRpcVarTypeUInt64)] 
       DWORD64 uint64Val;
     [case(EvtRpcVarTypeString)] 
       [string] LPWSTR stringVal;
     [case(EvtRpcVarTypeGuid)] 
       GUID* guidVal;
     [case(EvtRpcVarTypeBooleanArray)] 
       BooleanArray booleanArray;
     [case(EvtRpcVarTypeUInt32Array)] 
       UInt32Array uint32Array;
     [case(EvtRpcVarTypeUInt64Array)] 
       UInt64Array uint64Array;
     [case(EvtRpcVarTypeStringArray)] 
       StringArray stringArray;
     [case(EvtRpcVarTypeGuidArray)] 
       GuidArray guidArray;
   };
 } EvtRpcVariant;

type: Indicates the actual type of the union.

flags: This flag MUST be set to either 0x0000 or 0x0001. If this flag is set to 0x0001, it indicates that an EvtRpcVariant structure has been changed by the client. For an example of how this flag might be set, suppose the client application retrieved an EvtRpcVariantList structure by calling EvtRpcGetChannelConfig, changed one or more EvtRpcVariant structures in the list, and then sent the list back to the server via EvtRpcPutChannelConfig. In this example, the server updates the values corresponding to the EvtRpcVariant structures with this flag set.

Value

Meaning

0x0000

A flag indicating that no instance of an EvtRpcVariant structure was changed by the client.

0x0001

A flag indicating that an EvtRpcVariant structure was changed by the client.

RpcVariant: The data type to be passed.

nullVal: MUST be set to 0x00000000.

booleanVal: A BOOLEAN value.

uint32Val: A 32-bit unsigned integer.

uint64Val: A 64-bit unsigned integer.

stringVal: A null-terminated UNICODE string.

guidVal: A GUID.

booleanArray: An array of BOOLEAN values that are stored as a BooleanArray.

uint32Array: An array of 32-bit unsigned integers that are stored as a UInt32Array.

uint64Array: An array of 64-bit unsigned integers that are stored as a UInt64Array.

stringArray: An array of strings that are stored as a StringArray.

guidArray: An array of GUIDs that are stored as a GuidArray.