OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: Albert Pi (API_at_CABLEVISION.COM)
Date: Wed Aug 21 2002 - 10:36:44 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

     MEOW

    Albert Pi
    Corp IS System Delivery
    516-803-3762

    >>> peterpartchPMCONSULT.COM 08/20/02 11:25AM >>>
    The GIT is a table of strong table marshaled MEOW packets (by the way, MEOW
    is not a acronym....its the tag at the front of the packet. The packet is a
    buffer of data that identifies the location of the object).

    The GIT was created because there was no way to strong table marshal
    interface proxies....you could only strong table marshal direct references
    to objects....at one time. This, if I'm not mistaken, has changed. If you
    perform some testing, you should see that you can now perform strong table
    marshaling of interface proxies.

    Your comments about the behavior of AddRef and Release are correct, but
    don't forget that the COM standard marshaling system never hooks proxies to
    proxies. When a proxy is rehydrated, you are always hooked directly up to
    the stub of the object.

    Peter Partch

    ----- Original Message -----
    From: "George Ter-Saakov" <gt-saakovCARDONE.COM>
    To: <DCOMDISCUSS.MICROSOFT.COM>
    Sent: Tuesday, August 20, 2002 8:17 AM
    Subject: Re: [DCOM] marshalling interface pointers...

    I think that restriction came from the way AddRef/Release work.
    If you noticed that AddRef and Release does not return HRESULT. It's because
    it can never fail.

    When Proxy/Stub are created the AddRef/Release on proxy does not
    AddRef/Release on object itself.
    Proxy holds one pointer to the stub. And stub holds pointer to the object.
    So AddRef/Release affects only proxy on client side. No calls to the server.

    When you call CoUnitialize the COM runtime clean up and removes all stubs
    (stub call Release on object).
    That is why it's important that Appartment must be allive till Clients
    connected to the server.

    I am not sure why it happens with GIT and not happening with
    CoMarshalInterThreadInterfaceInStream
    but I am afraid this behavior can change with new Service Pack.

    George.

    -----Original Message-----
    From: Peter Partch [mailto:peterpartchPMCONSULT.COM]
    Sent: Tuesday, August 20, 2002 10:54 AM
    To: DCOMDISCUSS.MICROSOFT.COM
    Subject: Re: marhsalling interface pointers...

    No, the registering apartment does not have to stay alive....the apartment
    that the object lives in has to stay alive.

    ...and don't register the IStream* from COMITIIS....that is the wrong object
    instance. It only holds the MEOW packet for another object reference and
    become useless as soon as you call CoGetInterfaceAndReleaseStream.

    Peter Partch

    ----- Original Message -----
    From: "Ben Callister" <BCallisterTUTOR.COM>
    To: <DCOMDISCUSS.MICROSOFT.COM>
    Sent: Tuesday, August 20, 2002 6:55 AM
    Subject: Re: [DCOM] marhsalling interface pointers...

    that *really* sucks about the GIT (registering apt having to stay
    alive). that doesnt make sense to me since the GIT is a process-wide
    store for interface pointers. does this still apply if the interface i
    register is an IStream* from COMITIIS?
    thanks tons,
    Ben

    -----Original Message-----
    From: Steve Johnson [mailto:sjohnson3TSYSTEMS.COM]
    Sent: Tuesday, August 20, 2002 9:47 AM
    To: DCOMDISCUSS.MICROSOFT.COM
    Subject: Re: marhsalling interface pointers...

    [Steve Wrote]
    >> 1 - The apartment that originally registered the interface in the GIT

    >> must remain alive for the *entire* time the interface is registered
    >> in the GIT. Attempts to unmarshal the interface after the original
    >> apartment has been destroyed will fail.
    >>

    [Phil Wrote]
    > This is not unique to the GIT. If you kill any apartment then you kill

    > all objects in it irrespective of their reference counts.
    > CoMarshalWhatEver suffers the same problem. Note: if the source
    > apartment is STA then it must
    > be processing messages or the unmarshal will block until it does.

    The difference is this: When using COMITIIS, you can kill the apartment
    that called COMITIIS, and still successfully unmarshal the interface in
    a different apartment as long as the apartment the object actually lives
    in remains. With the GIT, the apartment that
    *registered* the interface must remain alive regardless whether that's
    the apartment the real object lives in.

    --
    Steve Johnson
    3t Systems
    

    ---------------------------------------------------------------- Users Guide http://discuss.microsoft.com/archives/mailfaq.asp contains important info. Save time, search the archives at http://discuss.microsoft.com/archives/index.html . To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM

    ---------------------------------------------------------------- Users Guide http://discuss.microsoft.com/archives/mailfaq.asp contains important info. Save time, search the archives at http://discuss.microsoft.com/archives/index.html . To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM

    ---------------------------------------------------------------- Users Guide http://discuss.microsoft.com/archives/mailfaq.asp contains important info. Save time, search the archives at http://discuss.microsoft.com/archives/index.html . To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM

    ---------------------------------------------------------------------------- ------------------------ This message is intended only for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential or exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately.

    ---------------------------------------------------------------- Users Guide http://discuss.microsoft.com/archives/mailfaq.asp contains important info. Save time, search the archives at http://discuss.microsoft.com/archives/index.html . To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM

    ---------------------------------------------------------------- Users Guide http://discuss.microsoft.com/archives/mailfaq.asp contains important info. Save time, search the archives at http://discuss.microsoft.com/archives/index.html . To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM

    ---------------------------------------------------------------- Users Guide http://discuss.microsoft.com/archives/mailfaq.asp contains important info. Save time, search the archives at http://discuss.microsoft.com/archives/index.html . To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM