[ofw] RE: interface GUIDs and versioning

Fab Tillier ftillier at windows.microsoft.com
Wed Jul 8 15:50:26 PDT 2009



> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org [mailto:ofw-
> bounces at lists.openfabrics.org] On Behalf Of Sean Hefty
> Sent: Wednesday, July 08, 2009 3:02 PM
> To: Hefty, Sean; ofw at lists.openfabrics.org
> Subject: [ofw] RE: interface GUIDs and versioning
>
> Resending to see if anyone has any comments.
>
>>> #define INTERFACE IWVQueuePair -//
>>> {a847c13c-e617-489c-b0ab-2da73eb0adfd} -DEFINE_GUID(IID_IWVQueuePair,
>>> 0xa847c13c, 0xe617, 0x489c, -                     0xb0, 0xab, 0x2d,
>>> 0xa7, 0x3e, 0xb0, 0xad, 0xfd); +//
>>> {35C64226-6A1F-4c8d-9465-C6FEE8053CDD} +DEFINE_GUID(IID_IWVQueuePair,
>>> 0x35c64226, 0x6a1f, 0x4c8d, +                     0x94, 0x65, 0xc6,
>>> 0xfe, 0xe8, 0x5, 0x3c, +0xdd);
>>>
>>> DECLARE_INTERFACE_(IWVQueuePair, IWVOverlapped)  { @@ -802,9 +802,9
>>> @@ DECLARE_INTERFACE_(IWVQueuePair, IWVOver
>>>
>>> #undef INTERFACE #define INTERFACE IWVConnectQueuePair -//
>>> {A791309C-4244-4194-AD63-7D372CADE5E0}
>>> -DEFINE_GUID(IID_IWVConnectQueuePair, 0xa791309c, 0x4244, 0x4194, -
>>>                  0xad, 0x63, 0x7d, 0x37, 0x2c, 0xad, 0xe5, 0xe0); +//
>>> {DF905570-AEEB-4114-B30E-4DC3EB5A9AD6}
>>> +DEFINE_GUID(IID_IWVConnectQueuePair, 0xdf905570, 0xaeeb, 0x4114, +
>>>                  0xb3, 0xe, 0x4d, 0xc3, 0xeb, 0x5a, 0x9a, +0xd6);
>>  It's not clear to me the best way to handle interface changes after
>> release. In this case, the QP interfaces changed, so I updated their
>> GUIDs.  But it seems like the WvProvider interface GUID basically
>> controls the default interfaces that a user sees.  It's the only GUID
>> that a user will typically access directly.  As an example, a user
>> calls:
>>
>> WvGetObject(IID_WvProvider...);
>> provider->OpenDevice(... IWVDevice *dev);
>>
>> The user doesn't specify which version of the IWVDevice interface
>> that's wanted.
>>
>> Should users always call QueryInterface to ensure that they have the
>> correct interface, or should the interface GUIDs be input into any
>> calls that return an interface?  Thoughts anyone?
>
> How will ND handle this?

What we did when we changed some interfaces was change the GUID of any parent object that would return a changed interface.

So in your case, the IWVDevice and IWVProvider interfaces would change too.

-Fab



More information about the ofw mailing list