Beispiel #1
0
        internal unsafe int GetModuleParameters(
            IntPtr self,
            uint count,
            ulong *bases,
            uint start,
            DEBUG_MODULE_PARAMETERS *moduleParams)
        {
            Debug.Assert(bases != null);
            Debug.Assert(start == 0);

            foreach (ModuleInfo module in DataReader.EnumerateModules())
            {
                for (int i = 0; i < count; i++)
                {
                    if (bases[i] == module.ImageBase)
                    {
                        moduleParams[i].Base          = module.ImageBase;
                        moduleParams[i].Size          = module.FileSize;
                        moduleParams[i].TimeDateStamp = module.TimeStamp;
                        moduleParams[i].Checksum      = 0;
                        moduleParams[i].Flags         = DEBUG_MODULE.LOADED;
                        moduleParams[i].SymbolType    = DEBUG_SYMTYPE.PDB;

                        uint imageNameSize = (uint)module.FileName.Length + 1;
                        moduleParams[i].ImageNameSize = imageNameSize;

                        string moduleName     = GetModuleName(module);
                        uint   moduleNameSize = (uint)moduleName.Length + 1;
                        moduleParams[i].ModuleNameSize = moduleNameSize;

                        moduleParams[i].LoadedImageNameSize = 0;
                        moduleParams[i].SymbolFileNameSize  = 0;
                        moduleParams[i].MappedImageNameSize = 0;
                    }
                }
            }
            return(S_OK);
        }