FinalReleaseComObject and RCW's



We are currently developing software for WinCE 6.0 on a PXA270
processor. Sometimes on some of our units we see unhandled
exceptions, or low memory warnings, but haven't been able to find
anything obvious. In an attempt to get some more detail I tried
enabling Interop logging and noticed something of interest, and was
hoping someone could shed some light on what exactly it means.

Here is a block of the log that I'm talking about:

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[Ctor][preservesig]
void MSXML2.DOMDocumentClass::.ctor(MSXML2.DOMDocumentClass );
void .ctor(DOMDocumentClass *(PVOID_VAL) this);

[Ctor][preservesig]
void MSXML2.DOMDocumentClass::.ctor(MSXML2.DOMDocumentClass );
void .ctor(DOMDocumentClass *(PVOID_VAL) this);

[no flags]
bool MSXML2.IXMLDOMDocument2::load(MSXML2.IXMLDOMDocument2 ,
object );
HRESULT load(IXMLDOMDocument2 *(INTF_VAL) this, VARIANT(VARIANT_VAL) ,
[retval] VARIANTBOOL (I1_VARIANTBOOL_VAL) retval);

[no flags]
bool MSXML2.IXMLDOMDocument2::load(MSXML2.IXMLDOMDocument2 ,
object );
HRESULT load(IXMLDOMDocument2 *(INTF_VAL) this, VARIANT(VARIANT_VAL) ,
[retval] VARIANTBOOL (I1_VARIANTBOOL_VAL) retval);

[no flags]
MSXML2.IXMLDOMElement
MSXML2.IXMLDOMDocument2::get_documentElement(MSXML2.IXMLDOMDocument2 );
HRESULT get_documentElement(IXMLDOMDocument2 *(INTF_VAL) this,
[retval] IXMLDOMElement *(INTF_VAL) retval);

[no flags]
string
MSXML2.IXMLDOMDocument2::transformNode(MSXML2.IXMLDOMDocument2 ,
MSXML2.IXMLDOMNode );
HRESULT transformNode(IXMLDOMDocument2 *(INTF_VAL) this, IXMLDOMNode
*(INTF_VAL) , [retval] Unknown (nt=0x13)(STRING_BSTR) retval);

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

WARNING: Cleaning up a native com object from the finalizer thread,
which may result in a memory leak under Windows CE. It is recommended
that you use Marshal.FinalReleaseComObject from the thread that
created the Rcw.
WARNING: Cleaning up a native com object from the finalizer thread,
which may result in a memory leak under Windows CE. It is recommended
that you use Marshal.FinalReleaseComObject from the thread that
created the Rcw.
WARNING: Cleaning up a native com object from the finalizer thread,
which may result in a memory leak under Windows CE. It is recommended
that you use Marshal.FinalReleaseComObject from the thread that
created the Rcw.

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

[pinvokeimpl][preservesig]
bool OpenNETCF.WindowsCE.NativeMethods::GetLocalTime(System.Byte[] );
BOOLEAN (I1_WINBOOL_VAL) GetLocalTime(unsigned char
*(ARRAY_BLIT_LPARRAY) );

.



Relevant Pages

  • Re: Pre Delphi 2008-9 Unicode Dos and Donts
    ... grown in proportion to available memory. ... wanted to check if the character is uppercase. ... function IsCharUpper(C: Char): Boolean; ... function TUpperCaseChars.IsCharUpper: Boolean; ...
    (borland.public.delphi.non-technical)
  • Re: Segmentation fault
    ... Here you ask for a pointer to char. ... to a random position in memory. ... There's nothing else than a string the user could enter;-) ... to the use of scanf(). ...
    (comp.lang.c)
  • Re: somebody dropped a (warning) bomb
    ... And THAT is the fundamental problem with that *idiotic* warning. ... to say "I want a char of indeterminate sign". ... The kernel already uses isxxxthat are macros ... for doing strings. ...
    (Linux-Kernel)
  • Re: somebody dropped a (warning) bomb
    ... then please tell me how to fix that warning without making the code ... Because instead of trying to fix the code, ... No. I'm saying that I have *reasons* that I need my string to be unsigned. ... using "char*" instead. ...
    (Linux-Kernel)
  • Re: somebody dropped a (warning) bomb
    ... using char* will be wrong unless it handles both cases correctly. ... No warning. ... Warning: Wrong arch ... Warning on wrong signedness is good, but if you can't enable it on ...
    (Linux-Kernel)

Loading