src/vm/ceeload.cpp
void Module::EnumRegularStaticGCRefs(promote_func* fn, ScanContext* sc)
{
    CONTRACT_VOID
    {
        NOTHROW;
        GC_NOTRIGGER;
    }
// This method will report GC static refs of the module. It doesn't have to be complete (ie, it's 
// currently used to opportunistically get more concurrency in the marking of statics), so it currently
// ignores any statics that are not preallocated (ie: won't report statics from IsDynamicStatics() MT)
// The reason this function is in Module and not in DomainFile (together with DomainLocalModule is because
// for shared modules we need a very fast way of getting to the DomainLocalModule. For that we use
// a table in DomainLocalBlock that's indexed with a module ID
//
// This method is a secondary way for the GC to find statics, and it is only used when we are on
// a multiproc machine and we are using the ServerHeap. The primary way used by the GC to find 
// statics is through the handle table. Module::AllocateRegularStaticHandles() allocates a GC handle
// from the handle table, and the GC will trace this handle and find the statics.
This method will report GC static refs of the module. It doesn't have to be complete , so it currently
ignores any statics that are not preallocated  MT)
The reason this function is in Module and not in DomainFile (together with DomainLocalModule is because
for shared modules we need a very fast way of getting to the DomainLocalModule. For that we use
a table in DomainLocalBlock that's indexed with a module ID

This method is a secondary way for the GC to find statics, and it is only used when we are on
a multiproc machine and we are using the ServerHeap. The primary way used by the GC to find
statics is through the handle table. Module::AllocateRegularStaticHandles() allocates a GC handle
from the handle table, and the GC will trace this handle and find the statics.
This method will report GC static refs of the module . It doesn ' t have to be complete so it currently ignores any statics that are not preallocated MT ) The reason this function is in Module and not in DomainFile ( together with DomainLocalModule is because for shared modules we need a very fast way of getting to the DomainLocalModule . For that we use a table in DomainLocalBlock that ' s indexed with a module ID This method is a secondary way for the GC to find statics and it is only used when we are on a multiproc machine and we are using the ServerHeap . The primary way used by the GC to find statics is through the handle table . Module :: AllocateRegularStaticHandles () allocates a GC handle from the handle table and the GC will trace this handle and find the statics .
void Module::EnumRegularStaticGCRefs(promote_func* fn, ScanContext* sc)
{
    CONTRACT_VOID
    {
        NOTHROW;
        GC_NOTRIGGER;
    }
void Module :: EnumRegularStaticGCRefs ( promote_func * fn , ScanContext * sc ) { CONTRACT_VOID { NOTHROW ; GC_NOTRIGGER ; }
This method will report GC static refs of the module.
This method will report GC static refs of the module .