3.1.2.5.1.1 IObjectExporter::ResolveOxid (Opnum 0)

The ResolveOxid method returns the bindings and Remote Unknown IPID for an object exporter.

 [idempotent] error_status_t ResolveOxid(
   [in] handle_t hRpc,
   [in] OXID* pOxid,
   [in] unsigned short cRequestedProtseqs,
   [in, ref, size_is(cRequestedProtseqs)] 
     unsigned short arRequestedProtseqs[],
   [out, ref] DUALSTRINGARRAY** ppdsaOxidBindings,
   [out, ref] IPID* pipidRemUnknown,
   [out, ref] DWORD* pAuthnHint
 );

hRpc: This MUST specify an RPC binding handle, as specified in [MS-RPCE] section 3.2.2.3.1.

pOxid: This MUST specify an OXID identifying an object exporter.

cRequestedProtseqs: This MUST contain the number of elements in the arRequestedProtseqs array.

arRequestedProtseqs: This MUST contain an array of RPC protocol sequence identifiers supported by the client.

ppdsaOxidBindings: This MUST contain the string and security bindings supported by the object exporter and MUST NOT be NULL. The returned string bindings SHOULD contain endpoints.

pipidRemUnknown: This MUST contain the IPID of the object exporter Remote Unknown object.

pAuthnHint: This SHOULD contain an RPC authentication level (see [MS-RPCE] section 2.2.1.1.8) that indicates the minimum authentication level supported by the object exporter, which MAY be ignored by the client.<52>

When processing this call:

  • The object resolver MAY compare the client's credentials against a set of implementation-specific permissions.<53> If the permissions do not allow access to the client credentials, the object resolver MUST return ERROR_ACCESS_DENIED (as specified in [MS-ERREF] section 2.2).

  • The object resolver MUST look up the OXID entry using the OXID specified by the client. If the entry is not found, it MUST return OR_INVALID_OXID (as specified in [MS-ERREF] section 2.2).

  • If the entry is found and the RPC binding information in the entry is not present or does not contain the RPC protocol sequence that the client specified, the object resolver MUST instruct the object exporter to listen on the RPC protocol, as specified in [C706] section 3.1.20 (rpc_server_use_protseq), and set the RPC binding string of the object exporter in the OXID entry.

  • The object resolver MUST return the following information to the client:

    • The RPC binding strings of the object exporter.

    • The authentication hint of the object exporter.

    • The IPID of the IRemUnknown interface of the object exporter.