this is a minor issue, but it does affect SCE-MI implementation. The SceMi::BindMessageInPort() and SceMi::BindMessageOutPort() methods each take a binding argument that is a pointer to a struct the user has defined. Is the implementation required to copy the contents of this struct (if the pointer is not NULL) internally? The answer to this question affects what the application can do with the struct after calling one of these methods. If the answer is yes, the application can do whatever it wants with the struct. If the answer is no, then the application must keep the struct around until Shutdown() time. Furthermore, is must potentially keep track of multiple of these structs (in the worst case one per port if none of them can be shared). Also, if the answer is no, this raises several other questions such as will the application be allowed to change the fields of the binding structs while the emulation is running. My take on these is that the implementation should be required to copy the contents of the binding argument. This places the least constraints on the application and avoids some potentially nasty problems if the application accidentally changed one or more fields of the struct while the emulation is running. If it actually wants to change these fields it can use the ReplaceBinding() method. If the committee agrees, I propose we add a sentence to the description of each of the BindMessage(In|Out)Port() methods that states that the implementation is required to copy the contents of the binding struct and the application is free to discard of the struct after the call. Per ======================================================================== In my opinion the implementation must not be able to assume that the information will remain persistent - therefore it should copy. Once the call is made the application should be free to destroy the info. In many of our examples we do just that. The information passed to the ::Bind??Port calls is stored in an automatic variable which subsequently goes out of scope once the port initializaion ops complete. John S ========================================================================== I just wanted to add to issue IM20 that it applies to the ReplaceBinding() methods as well as BindMessage(In|Out)Port(). I propose to add this text to the description of each of these four methods (replace with the actual method name), Sections 5.3.3.4, 5.3.3.5, 5.3.6.2, 5.3.7.2: The implementation shall copy the contents of the object pointed to by the binding argument to an internal, implementation specific location. NOTE--The application is free to deallocate and/or modify the binding object at any time after calling . Since the binding object is copied, the binding itself will not change as a result of this. I have some typographical trouble with where exactly to put this text in each of the sections. If we put it after the description of the method arguments it may look like it applies to the last argument. If we put it before it does not flow nicely with the existing text. Perhaps we can add a subsection after the argument descriptions? Or is it better to integrate the above in the general description of the method before the argument descriptions? Off hand, that sounds more reasonable to me. Per