Esempio n. 1
0
 public override ExternalProcedure LookupProcedureByName(string moduleName, string procName)
 {
     //$REVIEW: common code with Win32_64 platform, consider pushing to base class?
     EnsureTypeLibraries("win32");
     return(TypeLibs.Select(t => t.Lookup(procName))
            .Where(sig => sig != null)
            .Select(s => new ExternalProcedure(procName, s))
            .FirstOrDefault());
 }
Esempio n. 2
0
        public override ExternalProcedure LookupProcedureByName(string moduleName, string procName)
        {
            EnsureTypeLibraries("win64");
            var ep = TypeLibs.Select(t => t.Lookup(procName))
                     .Where(sig => sig != null)
                     .Select(s => new ExternalProcedure(procName, s))
                     .FirstOrDefault();

            if (ep != null)
            {
                var ch = CharacteristicsLibs
                         .Select(c => c.Lookup(ep.Name))
                         .FirstOrDefault();
                ep.Characteristics = ch;
            }
            return(ep);
        }
Esempio n. 3
0
 public override ExternalProcedure LookupProcedureByOrdinal(string moduleName, int ordinal)
 {
     EnsureTypeLibraries("win32");
     return(TypeLibs
            .Where(t => string.Compare(t.ModuleName, moduleName, true) == 0)
            .Select(t =>
     {
         SystemService svc;
         if (t.ServicesByVector.TryGetValue(ordinal, out svc))
         {
             return new ExternalProcedure(svc.Name, svc.Signature);
         }
         else
         {
             return null;
         }
     })
            .Where(p => p != null)
            .FirstOrDefault());
 }