<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Michał Cierniak : Annotated Rotor</title><link>http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx</link><description>Tags: Annotated Rotor</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Annotations for Rotor source files (9) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/03/04/84241.aspx</link><pubDate>Fri, 05 Mar 2004 03:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:84241</guid><dc:creator>michaljc</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/84241.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=84241</wfw:commentRss><description>&lt;P&gt;This is the last post giving brief summaries of .h files in the clr/src/inc directory of the Rotor distribution.&amp;nbsp; As usually whenever the file contains a good summary in a comment, I simply quote the comment here, otherwise I write new notes to capture the contents of the file.&amp;nbsp; Comments that are copied verbatim from the source file are &lt;FONT color=#000080 size=2&gt;distinguished by a font&lt;/FONT&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;stgpool.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Pools are used to reduce the amount of data actually required in the database.&lt;BR&gt;&amp;nbsp;// This allows for duplicate string and binary values to be folded into one&lt;BR&gt;&amp;nbsp;// copy shared by the rest of the database.&amp;nbsp; Strings are tracked in a hash&lt;BR&gt;&amp;nbsp;// table when insert/changing data to find duplicates quickly.&amp;nbsp; The strings&lt;BR&gt;&amp;nbsp;// are then persisted consecutively in a stream in the database format.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;In-memory format used for the metadata heaps.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;stgpooli.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// This is helper code for the string and blob pools.&amp;nbsp; It is here because it is&lt;BR&gt;&amp;nbsp;// secondary to the pooling interface and reduces clutter in the main file.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Hash functions and get/put packed length&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;stresslog.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines STRESS_LOG0 and STRESS_LOG1 which are defined to be nops in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;strongname.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// Wrappers for signing and hashing functions needed to implement strong names&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;switches.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;switch configuration of common runtime features&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;threadpool.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Constants for the thread pool.&lt;/LI&gt;
&lt;LI&gt;Comment in the file is incorrect.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;timeline.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// Simple timed manual event log, for profiling purposes.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;timer.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// This module contains the CTimer class which will time events and keep&lt;BR&gt;&amp;nbsp;// running totals.&amp;nbsp; This class will first try to use a high performance&lt;BR&gt;&amp;nbsp;// counter if the system supports it.&amp;nbsp; This type of counter is much more&lt;BR&gt;&amp;nbsp;// accurate than the system clock.&amp;nbsp; If the system does not support this, then&lt;BR&gt;&amp;nbsp;// the normal clock is used.&amp;nbsp; The total time is returned&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;tpoolfnsp.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Used like opcode.def.&amp;nbsp; Declares thread pool functions through the STRUCT_ENTRY macro.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;utilcode.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;Utility functions implemented in UtilCode.lib.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;utsem.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Utility semaphors and locks.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;vererror.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;definitions of data structures, needed to report verifier errors&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;warningcontrol.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;Header file to globally control the warning settings&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Not widely used&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;winwrap.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;This file contains wrapper functions for Win32 API's that take strings.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;wsinfo.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Not used in Rotor&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;wsperf.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// This is the internal interface for collecting and logging dynamic data&lt;BR&gt;&amp;nbsp;// allocations and deallocations. There is two kinds of data collected&lt;BR&gt;&amp;nbsp;// summary and detailed. Summary data gives a summary of of allocations made&lt;BR&gt;&amp;nbsp;// from various heaps (e.g. Highfrequency, Low frequency heap etc.). Summary &lt;BR&gt;&amp;nbsp;// data also includes number of common data structures allocated e.g. MethodDescs&lt;BR&gt;&amp;nbsp;// etc.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;xmlparser.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines the COM interface IXMLParser and related interfaces&lt;/LI&gt;
&lt;LI&gt;Generated from an IDL file not included in the Rotor distribution&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;__mscoree_file__.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Identification info put in resource files&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=84241" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (8) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/02/24/79605.aspx</link><pubDate>Wed, 25 Feb 2004 02:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:79605</guid><dc:creator>michaljc</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/79605.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=79605</wfw:commentRss><description>&lt;UL dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;LI&gt;&lt;STRONG&gt;palclr.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// Various macros and constants that are necessary to make the CLR portable.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;palstartup.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// An implementation of startup code for Rotor's Unix PAL.&amp;nbsp; This file should&lt;BR&gt;&amp;nbsp;// be included by any file in a PAL application that defines main.&lt;BR&gt;&amp;nbsp;// palstartupw.h is the Unicode version of this file.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Wraps user's main with a call to PAL_initialize and sets PAL_Terminate via atexit.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;palstartupw.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;See palstartup.h&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;perfcounterdefs.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Internal Interface for CLR to use Performance counters&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Defines the shapes of perf counter blocks as they might appear in shared memory&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;perfcounters.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Internal Interface for CLR to use Performance counters&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Defines API to access counters and update them.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;perflog.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Internal interface for logging perfromance data. Currently, two types of logging &lt;BR&gt;&amp;nbsp;// formats are supported, Pretty print for stdout and perf automation friendly &lt;BR&gt;&amp;nbsp;// format.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;pesectionman.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Section Manager for portable executables&lt;BR&gt;&amp;nbsp;// Common to both Memory Only and Static (EXE making) code&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;posterror.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;PostError loads a resource string for a given error, fills it in using the equivalent of sprintf and generates an IErrorInfo via ICreateErrorInfo interface.&amp;nbsp; Sets the current error to that value by calling SetErrorInfo.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;prettyprintsig.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines PrettyPrintSig which is used in ildasm and PrettyPrintSigInternal which is used internally to compute GUIDs for types for use in COM interop.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;profilepriv.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Helper structs, enums, variables and functions for the profiling API&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;querybinding.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;//&amp;nbsp;&amp;nbsp; Query binding macros for internal use in mscoree.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Not used in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;regdisp.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Arch-dependent but OS-independent struct representing register state and accessor functions.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;safegetfilesize.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// This provides a wrapper around GetFileSize() that forces it to fail&lt;BR&gt;&amp;nbsp;// if the file is &amp;gt;4g and pdwHigh is NULL. Other than that, it acts like&lt;BR&gt;&amp;nbsp;// the genuine GetFileSize().&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;setupcodes.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// This file contains the errors that the Setup and related tools return&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Not used in Rotor&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;shimload.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Sets/Gets the directory based on the location of the module. This routine&lt;BR&gt;&amp;nbsp;// is called at COR setup time. Set is called during EEStartup and by the &lt;BR&gt;&amp;nbsp;// MetaData dispenser.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;sighelper.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// This file defines the helpers for processing signature&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;stacktrace.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Not used in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;stdmacros.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Portability macros and formatting macros for logging&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=79605" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (7) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/02/18/75997.aspx</link><pubDate>Thu, 19 Feb 2004 02:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:75997</guid><dc:creator>michaljc</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/75997.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=75997</wfw:commentRss><description>&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;jitperf.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;// Internal interface for gathering JIT perfmormance stats. These stats are&lt;BR&gt;&amp;nbsp;// logged (or displayed) in two ways. If PERF_COUNTERS are enabled the &lt;BR&gt;&amp;nbsp;// perfmon etc. would display the jit stats. If ENABLE_PERF_LOG is enabled&lt;BR&gt;&amp;nbsp;// and PERF_OUTPUT env var is defined then the jit stats are displayed on the &lt;BR&gt;&amp;nbsp;// stdout. (The jit stats are outputted in a specific format to a file for &lt;BR&gt;&amp;nbsp;// automated perf tests.)&lt;/FONT&gt; 
&lt;LI&gt;A nop in Rotor v1.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;log.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// Logging Facility&lt;/FONT&gt; 
&lt;LI&gt;Usage is described in html docs for Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;loglf.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Defines categories of things to log. 
&lt;LI&gt;See log.h and the html docs.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;machine.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Defines DWORD and QWORD.&amp;nbsp; Optionally includes windows.h etc.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;md5.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// A pretty-darned fast implementation of MD5&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;mdcommon.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// Common header file for both MD and COMPLIB subdirectories&lt;/FONT&gt; 
&lt;LI&gt;Notes: 
&lt;OL&gt;
&lt;LI&gt;Defines an enum for file formats 
&lt;LI&gt;Defines strings (A &amp;amp; W) of metadata stream names.&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;member-offset-info.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Defines MEMBER_OFFSET_INFO: appends _member_offset_info to its argument 
&lt;LI&gt;See dump-tables.cpp.&amp;nbsp; This file defines structs that are declared as friends of various data structures.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;metadata.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;//&amp;nbsp;&amp;nbsp; Common includes for EE &amp;amp; metadata internal. This file contains&lt;BR&gt;&amp;nbsp;//&amp;nbsp;&amp;nbsp; definition of CorMetaDataScope&lt;/FONT&gt; 
&lt;LI&gt;Definitions of internal metadata APIs (COM-based) and their supporting structs and enums.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;metadatatracker.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;In Rotor stubbed out.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;metamodelpub.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Internal definitions of the metadata tables.&amp;nbsp; See &lt;A href="http://www.ecma-international.org/publications/standards/Ecma-335.htm"&gt;ECMA CLI&lt;/A&gt; Partition II.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;mscorcfg.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;A trivial XML parser for config files.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;mscoree.h&lt;/STRONG&gt; (not in tarball) 
&lt;UL&gt;
&lt;LI&gt;Generated from mscoree.idl&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;nativevaraccessors.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// The following are used to read and write data given NativeVarInfo&lt;BR&gt;// for primitive types. Don't use these for VALUECLASSes.&lt;/FONT&gt; 
&lt;LI&gt;Related to ICorDebugInfo.&amp;nbsp; Used by the impl of the Debugger API.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;nsutilpriv.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;// Helpers for converting namespace separators.&lt;/FONT&gt; 
&lt;LI&gt;E.g. splitting a string into a namespace and name.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;openum.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Defines enums opcode_t (using opcode.def) and opcode_format_t.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;opinfo.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Defines types that implement the IL opcode decoder.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;outstring.h&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#000080 size=2&gt;&amp;nbsp;/* A simple, lightweight, character output stream, with very few&lt;BR&gt;&amp;nbsp;external dependancies (like sprintf ... ) */&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=75997" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (6) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/02/14/73179.aspx</link><pubDate>Sun, 15 Feb 2004 02:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:73179</guid><dc:creator>michaljc</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/73179.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=73179</wfw:commentRss><description>&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;fuspriv.h&lt;/STRONG&gt; (not in tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Like other *.idl files, it is copied from palrt/idl&lt;/LI&gt;
&lt;LI&gt;Unlike other files generated from idl, this one doesn't have a corresponding idl file anywhere in the tarball.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;gchost.h&lt;/STRONG&gt; (not in tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;* Common Language Runtime Profiling interfaces&lt;BR&gt;*&lt;BR&gt;* The IGCHost allows a host environment to get statistics about the&lt;BR&gt;* garbage collector as well as to gain some limited control over collections.&lt;BR&gt;* This interface can be QueryInterface'd for on from the CorHost object.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Generated from gchost.idl&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;guidfromname.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines two GUID generators: CorGuidFromNameW, CorIIDFromCLSID&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;holder.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;// Various resource Holders&lt;BR&gt;&amp;nbsp;//&lt;BR&gt;&amp;nbsp;// General idea is to have a templatized class who's ctor and dtor call&lt;BR&gt;&amp;nbsp;// allocation management functions. This makes the holders type-safe, and&lt;BR&gt;&amp;nbsp;// the compiler can inline most/all of the holder code.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;None of the types declared in this file seems to be used.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;hrex.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;HR &amp;lt;-&amp;gt; SEH exception functions.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Examples: ThrowHR, ThrowError&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;iceefilegen.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;An implementation is in ceefilegen.cpp.&amp;nbsp; Parts of the interface dealing with signatures are deprecated in that implementation.&lt;/LI&gt;
&lt;LI&gt;Forwards to CeeFileGenWriter&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ilformatter.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;This is dead as are ilformatter.cpp and opinfo.[h,cpp].&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;il_kywd.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;// COM+ IL keywords, symbols and values&lt;BR&gt;&amp;nbsp;//&lt;BR&gt;&amp;nbsp;// This is the master table used in ILASM (asmparse.y)&lt;BR&gt;&amp;nbsp;// and ILDASM (dis.cpp)&lt;BR&gt;&amp;nbsp;// symbols and values are defined in asmparse.y &lt;BR&gt;&amp;nbsp;// and not used in dis.cpp&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Lexemes for ilasm and ildasm.&lt;/LI&gt;
&lt;LI&gt;Used like opcode.def&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;internaldebug.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;// This is internal code for debug mode which will turn on memory dump checking&lt;BR&gt;&amp;nbsp;// and other settings.&amp;nbsp; Call the api's according to:&lt;BR&gt;&amp;nbsp;// _DbgInit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On startup to init the system.&lt;BR&gt;&amp;nbsp;// _DbgRecord Call this when you are sure you want dump checking.&lt;BR&gt;&amp;nbsp;//_DbgUninit&amp;nbsp;&amp;nbsp;&amp;nbsp; Call at process shutdown to force the dump.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;In Rotor all of these are nops.&lt;/LI&gt;
&lt;LI&gt;_DbgRecord sets a variable that is never used.&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;intrinsic.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;// Force several very useful functions to be intrinsic, which means that the&lt;BR&gt;&amp;nbsp;// compiler will generate code inline for the functions instead of generating&lt;BR&gt;&amp;nbsp;// a call to the function.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;A very short list of intrinsics we are asking the MS C++ compiler to inline&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ipcfunccall.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// Define class to support a cross process function call.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;It seems to be used only in startup and shutdown to synchronize with PerfMon.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ipcmanagerinterface.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// Interface for InterProcess Communication with a COM+ process.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Interfaces for creating IPC readers and writers.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ivalidator.h&lt;/STRONG&gt; (not in tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// IValidator is used to staticly validate COR images.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Primarily used by PEVerify.&lt;/LI&gt;
&lt;LI&gt;Generated from&amp;nbsp;ivalidator.idl&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ivehandler.h&lt;/STRONG&gt; (not in tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Verification Event Handler Interface&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Generated from&amp;nbsp;ivehandler.idl&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=73179" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (5) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/02/10/71019.aspx</link><pubDate>Wed, 11 Feb 2004 01:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:71019</guid><dc:creator>michaljc</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/71019.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=71019</wfw:commentRss><description>&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;dump-type-info.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Defines macros which turn the contents of "dump-types.h" into class offsets&lt;BR&gt;and member offsets to use with GetMemberOffset().&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Used by SOS.&amp;nbsp; See dump-tables.h&amp;nbsp; Includes dump-types.h&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;dump-types.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Tables needed by Minidump &amp;amp; SOS&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Generates descriptions of unmanaged classes&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;eetwain.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// This file has the definition of ICodeManager and EECodeManager.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;In fact EECodeManager (the implementation of ICodeManager) is not defined in this file.&lt;/LI&gt;
&lt;LI&gt;Code manager is used by GC, security, debugger and exceptions handling for stack walking.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ehencoder.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Implementation of EH encoding interface that is used by both the VM (for decoding) and JITters (for encoding)&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;See ECMA CLI Partition II for encoding details&lt;/LI&gt;
&lt;LI&gt;See ehencoder.cpp in the same directory&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;enc.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Edit and continue.&amp;nbsp; A nop in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;frame-types.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Used like opcode.def: define macros first and include this file&lt;/LI&gt;
&lt;LI&gt;It defines all special marker and transition frames.&amp;nbsp; See the SSCLI book.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;fusion.h&lt;/STRONG&gt; (not in the tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Fusion Interfaces.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;See clr/src/fusion.&lt;/LI&gt;
&lt;LI&gt;Generated from fusion.idl.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;fusionbind.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Implements FusionBind (loader domain) architecture&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;fusionpriv.h&lt;/STRONG&gt; (not in the tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Fusion Interfaces&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Generated from the fusionpriv.idl.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;fusionsetup.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;Defines that are used in both managed and unmanged code&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Much of the managed stuff is in file clr/bcl/System/AppDomainSetup.cs and is visible as System.AppDomainSetup&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;fusionsink.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Provides implementation for IAssemblyBindSink.&lt;/LI&gt;
&lt;LI&gt;Provides a single method, OnProgress&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=71019" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (4) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/02/01/65956.aspx</link><pubDate>Mon, 02 Feb 2004 00:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:65956</guid><dc:creator>michaljc</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/65956.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=65956</wfw:commentRss><description>&lt;P&gt;Here&amp;#8217;s the fourth installment of the annotations.&amp;nbsp; Do people find this useful?&amp;nbsp; I know that &lt;A href="http://weblogs.asp.net/astopford/"&gt;Andrew&lt;/A&gt; thinks that these annotations are &lt;A href="http://weblogs.asp.net/astopford/archive/2004/01/28/64047.aspx"&gt;a good idea&lt;/A&gt;.&amp;nbsp; I would love to hear feedback from others.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corpriv.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines two interfaces: IMetaDataHelper and IMetaDataEmitHelper and a set of functions.&amp;nbsp; They are all internal to the runtime.&lt;/LI&gt;
&lt;LI&gt;Mostly they open and close images and provide some operations on them.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corprof.h&lt;/STRONG&gt; (not in the tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;CLR Profiling interfaces&lt;/LI&gt;
&lt;LI&gt;Generated from corprof.idl&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corpub.h&lt;/STRONG&gt; (not in the tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Common Language Runtime Process Publishing Interfaces&lt;/LI&gt;
&lt;LI&gt;Generated from corpub.idl&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corsvcpriv.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;For hosting the runtime as an NT service process&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corsym.h&lt;/STRONG&gt; (not in the tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Common Language Runtime Debugging Symbol Reader/Writer/Binder Interfaces&lt;/LI&gt;
&lt;LI&gt;If you&amp;nbsp;installed the Framework SDK, you can find the specification of these interfaces in&amp;nbsp;SDK\v1.1\Tool Developers Guide\docs\DebugRef.doc&lt;/LI&gt;
&lt;LI&gt;Generated from corsym.idl&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;cortypeinfo.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// This describes information about the COM+ primitive types&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Similar idea to opcode.def: you define a macro and it is applied to all built-in types&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;crtwrap.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Wrapper code for the C runtime library.&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#0000ff size=2&gt;#include "rotor_palrt.h"&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;dbgalloc.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;//&amp;nbsp; Routines layered on top of allocation primitives to provide debugging&lt;BR&gt;//&amp;nbsp; support.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Provides DbgAlloc/DbgFree&lt;/LI&gt;
&lt;LI&gt;Provides macros for instrumenting locks which go away in non-debug builds&lt;/LI&gt;
&lt;LI&gt;Provides CDA_DECL_CALLSTACK and CDA_GET_CALLSTACK which are nops in Rotor.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;dbgmeta.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// header file for debugger metadata routines&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;debugmacros.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// Wrappers for Debugging purposes.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Things like _DbgBreakCheck, IfFailGoto&lt;/LI&gt;
&lt;LI&gt;_DbgBreakCheck is called by the JIT for a failing assert in the debug build.&amp;nbsp; Used in ASSERTE.&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;declsec.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Declarative Security Header&lt;/LI&gt;
&lt;LI&gt;Defines DECLSEC_ macros&lt;/LI&gt;
&lt;LI&gt;Declares SecurityProperties and SecurityValue classes.&amp;nbsp; SecurityProperties&amp;nbsp; has member functions and SecurityValue doesn't.&lt;/LI&gt;
&lt;LI&gt;Declares additional types and conversion macros for them.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;dump-tables.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Declares ClassDumpInfo, ClassDumpTable, ClassDumpTableBlock.&lt;/LI&gt;
&lt;LI&gt;Used by SOS to dump various useful tables.&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=65956" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (3) - clr/src/inc</title><link>http://blogs.msdn.com/michaljc/archive/2004/01/29/64764.aspx</link><pubDate>Fri, 30 Jan 2004 02:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64764</guid><dc:creator>michaljc</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/64764.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=64764</wfw:commentRss><description>&lt;P&gt;Here are annotations for more files from the clr/src/inc directory.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corffi.h&lt;/STRONG&gt; (not in the tarball)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;CLR FFI (Foreign Function Interface) interfaces.&amp;nbsp; Generated from corffi.idl.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Note that there's another corffi.h in palrt\idl that is there to support the build process.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Defines IManagedInstanceWrapper with a single method: InvokeByName.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corhdr.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;For dealing with the managed PE file format including the metadata&lt;/LI&gt;
&lt;LI&gt;Data structures only -- no functions&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corhlpr.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Helper methods.&amp;nbsp; E.g. QuickBytes (fast memory allocation), method header and exception headers in the PE file format, and signature helpers.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corhost.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// Class factories are used by the pluming in COM to activate new objects.&lt;BR&gt;// This module contains the class factory code to instantiate the debugger&lt;BR&gt;// objects described in &amp;lt;cordb.h&amp;gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;class CorHost : public ICorRuntimeHost, public ICorThreadpool, public IGCHost, public ICorConfiguration, public IValidator, public IDebuggerInfo&lt;/LI&gt;
&lt;LI&gt;class ICorDBPrivHelperImpl : public ICorDBPrivHelper&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corimage.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// IMAGEHLP routines so we can avoid early binding to that DLL.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;\windows\system32\imagehlp.dll is a system-supplied standard way of understanding PE files and performing various operations on them.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corinfo.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;EE / Code generator interface.&amp;nbsp; Functions used by the JIT to call into the EE.&amp;nbsp; See also corjit.h&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corjit.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;EE / JIT interface.&amp;nbsp; Functions used to call the JIT.&amp;nbsp; See also corinfo.h&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corperm.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines the public routines defined in the security libraries.&amp;nbsp; See corpolicy.h&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corperme.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// Defines the Memory and Error routines defined in the secuirty libraries.&lt;BR&gt;// These routines are mainly for the security dll and the runtime.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corpermp.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// Defines the Private routines defined in the secuirty libraries. These routines&lt;BR&gt;// are mainly for the security dll and the runtime.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Not used in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corpolicy.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines data structures for policy queries.&amp;nbsp; See corperm.h&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=64764" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (2) - clr/src/inc cont.</title><link>http://blogs.msdn.com/michaljc/archive/2004/01/23/62445.aspx</link><pubDate>Sat, 24 Jan 2004 05:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:62445</guid><dc:creator>michaljc</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/62445.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=62445</wfw:commentRss><description>&lt;P&gt;Here are a few more files.&amp;nbsp; Enjoy!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ceefilegenwriter.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// CeeFileGenWriter contains all the code necessary to actually write an exe&lt;BR&gt;// while CCeeGen contains everything else. This lets CeeGen.exe and the VM&lt;BR&gt;// share more code without forcing the VM to carry the extra code to write an&lt;BR&gt;// exe.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;See ceegen.h.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ceegen.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Defines three classes: CeeSectionImpl, CeeSection and CCeeGen.&lt;/LI&gt;
&lt;LI&gt;CeeSection delegates to CeeSectionImpl object that is passed to the constructor.&lt;/LI&gt;
&lt;LI&gt;This file defines PE file writer used in CeeFileGenWriter.h.&lt;/LI&gt;
&lt;LI&gt;CCeeGen implements a COM class that implements the COM interface ICeeGen (in cor.h).&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ceegentokenmapper.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// This helper class tracks mapped tokens from their old value to the new value&lt;BR&gt;// which can happen when the data is optimized on save.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Unoptimized metadata has intermediate tables that enable out of order emission of metadata.&amp;nbsp; When the data is saved, it's typically optimized which requires that existing tokens be renumbered and this file provides the interface for reporting these remaps.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ceesectionstring.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// This class is responsible for managing all the strings that have&lt;BR&gt;// been emitted for the PE file.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;A hashtable implementation for interning strings in the metadata.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;classfac.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Implements COM's IClassFactory interface as a class CClassFactory.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;clear-class-dump-defs.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Undefines a bunch of macros, e.g., BEGIN_CLASS_DUMP_INFO&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;columnbinding.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Column data encoding for metadata.&amp;nbsp; Not used in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;compressionformat.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Defines struct CompressionMacroHeader which is not used in Rotor.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;contxt.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Generated by MIDL.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;cor.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;General header for the Runtime.&amp;nbsp; Worth a more in-depth description.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;cordbpriv.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Defines ICorDBPrivHelper and associated consts and macros.&lt;/LI&gt;
&lt;LI&gt;Used by the test infrastructure to create a managed object and inspect its contents.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;cordebug.h&lt;/STRONG&gt; &lt;EM&gt;(not in the tarball)&lt;/EM&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;File created by MIDL compiler from the included file cordebug.idl.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;corerror.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;lists the HResults used by the .NET Framework.&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=62445" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item><item><title>Annotations for Rotor source files (1) - clr/src/inc directory</title><link>http://blogs.msdn.com/michaljc/archive/2004/01/21/61505.aspx</link><pubDate>Thu, 22 Jan 2004 07:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:61505</guid><dc:creator>michaljc</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/michaljc/comments/61505.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michaljc/commentrss.aspx?PostID=61505</wfw:commentRss><description>&lt;P&gt;The other night I spent some time with two colleagues (Jim Miller and &lt;A href="http://www.razorsoft.net/weblog/"&gt;Peter Drayton&lt;/A&gt;) to look at Rotor source files and write a short annotation for each file.&amp;nbsp; We looked at a few header files in the clr/src/inc directory.&amp;nbsp; We thought that the experience was useful and we may sit down again and describe more files - no promises of course, but stay tuned... .&lt;/P&gt;
&lt;P&gt;In the text below I will use a different &lt;FONT color=#0000ff&gt;font color and size&lt;/FONT&gt; for the code and comments quoted from the source files but this convention is not essential to understanding the descriptions.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;allocacheck.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Here&amp;#8217;s a comment that describes well what this short file provides: &lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;/* check for alloca overruns (which otherwise are hard to track down&lt;BR&gt;&amp;nbsp;&amp;nbsp; and often only repro on optimized builds).&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp; USAGE:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void foo() {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALLOCA_CHECK();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Declare at function level scope&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void* mem = ALLOCA(size);&amp;nbsp;&amp;nbsp; // does an alloca, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; // destructor of ALLOCA_CHECK for buffer overruns.&amp;nbsp; &lt;BR&gt;*/&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Additional notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;These macros do something in the Debug build only&lt;/LI&gt;
&lt;LI&gt;They use C++ destructor semantics to check integrity of all ALLOCA'ed blocks when the function exits.&lt;/LI&gt;
&lt;LI&gt;They prefill memory with #DD, puts a sentinel of #CCCDCECF&lt;/LI&gt;
&lt;LI&gt;They chains blocks within this function through the sentinels field of the local variable __allocaChecker&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;arraylist.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment: &lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// ArrayList is a simple class which is used to contain a growable&lt;BR&gt;// list of pointers, stored in chunks.&amp;nbsp; Modification is by appending&lt;BR&gt;// only currently.&amp;nbsp; Access is by index (efficient if the number of&lt;BR&gt;// elements stays small) and iteration (efficient in all cases).&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Safe for single writer, multiple reader without locking&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;blobfetcher.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment: &lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// CBlobFetcher - it fetches binary chunks, similar to new, but more controlled&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Used only for PE file writing&lt;/LI&gt;
&lt;LI&gt;Functions in this class let you obtain a memory block of a given size and alignment, convert and offset into a pointer and vice versa, write out a section to a stream etc.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;cahlpr.h&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Comment:&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;// This class assists in the parsing of CustomAttribute blobs.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Notes:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Has methods named GetXX (I1, etc) in checked and unchecked flavors.&amp;nbsp; Both advance cursor in the blob.&lt;/LI&gt;&lt;/OL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=61505" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michaljc/archive/tags/Annotated+Rotor/default.aspx">Annotated Rotor</category><category domain="http://blogs.msdn.com/michaljc/archive/tags/Rotor+-+all/default.aspx">Rotor - all</category></item></channel></rss>