共用方式為


2.2.20.1 PROPMARSHALHEADER

PROPMARSHALHEADER is the marshaled representation of a context property. It contains a context property identifier and a context property data buffer supplied by an application or higher-layer protocol. The data buffer contains either an OBJREF that can be of any valid OBJREF format representing a client or prototype context property, or it contains opaque data representing an envoy context property.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

clsid (16 bytes)

...

...

policyId (16 bytes)

...

...

flags

cb

ctxProperty (variable)

...

clsid (16 bytes):  This field MUST be either GUID_NULL or a CLSID supplied by the application or higher-layer protocol identifying an object class associated with the data in the ctxProperty field. If this field is GUID_NULL, ctxProperty MUST contain an OBJREF representing the marshaled client or prototype context property; otherwise, ctxProperty MUST contain opaque data representing the marshaled envoy context property.

policyId (16 bytes):  A GUID supplied by the application or higher-layer protocol containing a context property identifier for the marshaled context property in ctxProperty.

flags (4 bytes): This MUST be set to one of the following values.

Value

Meaning

CPFLAG_PROPAGATE

0x00000001

This context property is part of a prototype context.

CPFLAG_EXPOSE

0x00000002

This context property is part of a client context.

CPFLAG_ENVOY

0x00000004

This context property is part of an envoy context.

cb (4 bytes): The unsigned size, in bytes, of the ctxProperty field.

ctxProperty (variable):  A buffer of cb bytes supplied by the application or higher-layer protocol. This buffer MUST contain an OBJREF representing the marshaled client or prototype context property if clsid is GUID_NULL; otherwise, it MUST contain opaque data representing the marshaled envoy context property.