2.2.1.2.4 ept_lookup Method

These extensions redefine the ept_lookup method, as specified in [C706] Appendix O, by way of the following:

  • Adding the ptr attribute to the object and Ifid parameters.

  • Adding the range attribute to the max_ents parameter.

  • Removing the [idempotent] method attribute.

The redefined method is specified as follows.

 void ept_lookup(
   [in] handle_t hEpMapper,
   [in] unsigned long inquiry_type,
   [in, ptr] UUID* object,
   [in, ptr] RPC_IF_ID* Ifid,
   [in] unsigned long vers_option,
   [in, out] ept_lookup_handle_t* entry_handle,
   [in, range(0,500)] unsigned long max_ents,
   [out] unsigned long* num_ents,
   [out, length_is(*num_ents), size_is(max_ents)] 
     ept_entry_t entries[],
   [out] error_status* status
 );

hEpMapper: An RPC binding handle as specified in [C706] section 2.

inquiry_type: The type of inquiry to perform. It SHOULD be one of the following values.<25>

Value

Meaning

RPC_C_EP_ALL_ELTS

0x00000000

Return all elements from the endpoint map. The Ifid, vers_option, and object parameters MUST be ignored.

RPC_C_EP_MATCH_BY_IF

0x00000001

Return endpoint map elements that contain the interface identifier specified by the Ifid and vers_option values.

RPC_C_EP_MATCH_BY_OBJ

0x00000002

Return endpoint map elements that contain the object UUID specified by object.

RPC_C_EP_MATCH_BY_BOTH

0x00000003

Return endpoint map elements that contain the interface identifier and object UUID specified by Ifid, vers_option, and object.

object: Optionally specifies an object UUID. A value of NULL indicates that no object UUID is specified.

Ifid: Optionally specifies an interface UUID. A value of NULL indicates that no interface UUID is specified.

vers_option: The interface version constraint. MUST be one of the following values.

Value

Meaning

RPC_C_VERS_ALL

0x00000001

Return endpoint map elements that contain the specified interface UUID, regardless of the version numbers.

RPC_C_VERS_COMPATIBLE

0x00000002

Return the endpoint map elements that contain the same major versions of the specified interface UUID and a minor version greater than or equal to the minor version of the specified UUID.

RPC_C_VERS_EXACT

0x00000003

Return endpoint map elements that contain the specified version of the specified interface UUID.

RPC_C_VERS_MAJOR_ONLY

0x00000004

Return endpoint map elements that contain the same version of the specified interface UUID and ignore the minor version.

RPC_C_VERS_UPTO

0x00000005

Return endpoint map elements that contain a version of the specified interface UUID less than or equal to the specified major and minor version.

entry_handle: On the first call, the client MUST set this to NULL. On successful completion of this method, returns a context handle that the client MUST use on subsequent calls to this method. In between calls if the client wishes to terminate the search, it MUST close the context handle by calling ept_lookup_handle_free.

max_ents: The maximum number of elements to be returned.

num_ents: The actual number of elements being returned.

entries: The elements that satisfy the specified search criteria.

status: MUST be a Win32 error code as specified in [MS-ERREF], 0x16c9a0cd or 0x16c9a0d6. All values other than the ones specified in the following table MUST be treated as a failure.

Value

Meaning

0x00000000

The method call returned at least one element that matched the search criteria.

0x16c9a0d6

There are no elements that satisfy the specified search criteria.

This method has no return values.

Everything else about this method remains as specified in [C706] Appendix O.<26>