2.2.22.2.2 SpecialPropertiesData

The SpecialPropertiesData structure contains miscellaneous parameters specified by the client for an activation request.

CLSID_SpecialSystemProperties (see section 1.9) is used to identify this property in the CustomHeader.pclsid array.

 typedef struct tagSpecialPropertiesData {
   unsigned long dwSessionId;
   long fRemoteThisSessionId;
   long fClientImpersonating;
   long fPartitionIDPresent;
   DWORD dwDefaultAuthnLvl;
   GUID guidPartition;
   DWORD dwPRTFlags;
   DWORD dwOrigClsctx;
   DWORD dwFlags;
   DWORD Reserved1;
   unsigned __int64 Reserved2;
   DWORD Reserved3[5];
 } SpecialPropertiesData;

dwSessionId: A value that uniquely identifies a logon session on the server. The value 0xFFFFFFFF indicates that any logon session is acceptable to the client.

fRemoteThisSessionId: This MUST be set to TRUE (0x00000001) if dwSessionId is not 0xFFFFFFFF; otherwise this MUST be set to FALSE (0x00000000). This field MUST be ignored on receipt.

fClientImpersonating: This SHOULD be set to FALSE (0x00000000) and MUST be ignored on receipt.<24>

fPartitionIDPresent: This MUST contain an implementation-specific value and MAY be ignored on receipt.<25>

dwDefaultAuthnLvl: This MUST contain an implementation-specific value and MUST be ignored on receipt.<26>

guidPartition: This MUST contain an implementation-specific value specified by higher-layer protocols and MAY be ignored on receipt.<27>

dwPRTFlags: This MUST be set to zero and MUST be ignored on receipt.

dwOrigClsctx: This MUST contain an implementation-specific value and SHOULD be ignored on receipt.<28>

dwFlags: This is a set of bitflags, defined as follows.

Value

Meaning

SPD_FLAG_USE_CONSOLE_SESSION

0x00000001

If this bit is set, the object resolver is requested to create the object exporter in the console logon session. If this bit is not set, the object resolver is requested to create the object exporter in the logon session specified in the dwSessionID field.

Object resolvers MUST ignore any other bits that are set in the dwFlags field.

Reserved1: This MUST be set to zero when sent and MUST be ignored on receipt.

Reserved2: This MUST be set to zero when sent and MUST be ignored on receipt.

Reserved3: This can contain arbitrary values and MUST be ignored on receipt.

This structure has an alternate definition that is specified as follows.

 typedef struct tagSpecialPropertiesData_Alternate {
   unsigned long dwSessionId;
   long fRemoteThisSessionId;
   long fClientImpersonating;
   long fPartitionIDPresent;
   DWORD dwDefaultAuthnLvl;
   GUID guidPartition;
   DWORD dwPRTFlags;
   DWORD dwOrigClsctx;
   DWORD dwFlags;
   DWORD Reserved3[8];
 } SpecialPropertiesData_Alternate;

All the fields have the same meaning as the corresponding fields in the first structure. A DCOM server MUST accept as valid both definitions. A DCOM client SHOULD<29> use SpecialPropertiesData in activation requests.