1.7 Versioning and Capability Negotiation
This protocol has no specific capability negotiation or versioning aspects, aside from the following considerations:
Services are identified by a globally unique identifier (GUID); furthermore, services of the same type can be differentiated by class ID (also a GUID).
Versioning is achieved by adding services (or support for new services) identified by new GUIDs (similar to COM interface versioning).
DSLR extensibility is achieved by:
Adding services: CreateService message on either side of the DSLR connection through a unique GUID is analogous to the COM QueryInterface call.
Adding functions: DSLR services are backwards compatible as long as old functions are kept.