code: def _setup_windows_msmpi(self):
      # Microsoft MPI (v7, v6, v5, v4)
      def msmpi_ver():
          try:
              try:
                  import winreg
              except ImportError:
                  import _winreg as winreg
              HKLM = winreg.HKEY_LOCAL_MACHINE
              subkey = r"SOFTWARE\Microsoft\MPI"
              with winreg.OpenKey(HKLM, subkey) as key:
                  for i in range(winreg.QueryInfoKey(key)[1]):
                      name, value, type = winreg.EnumValue(key, i)
                      if name != "Version":
                          continue
                      major, minor = value.split(".")[:2]
                      return (int(major), int(minor))
          except Exception:  # noqa: S110
              pass
          MSMPI_VER = os.environ.get("MSMPI_VER")
          if MSMPI_VER:
              try:
                  major, minor = MSMPI_VER.split(".")[:2]
                  return (int(major), int(minor))
              except Exception:
                  raise RuntimeError(
                      f"invalid environment: MSMPI_VER={MSMPI_VER}"
                  ) from None
          return None
  
      def setup_msmpi(MSMPI_INC, MSMPI_LIB):
          from os.path import join, isfile
  
          ok = (
              MSMPI_INC
              and isfile(join(MSMPI_INC, "mpi.h"))
              and MSMPI_LIB
              and isfile(join(MSMPI_LIB, "msmpi.lib"))
          )
          if not ok:
              return False
          version = msmpi_ver()
          if version is not None:
              major, minor = version
              MSMPI_VER = hex((major << 8) | (minor & 0xFF))
              self.library_info.update(
                  define_macros=[("MSMPI_VER", MSMPI_VER)],
              )
          MSMPI_INC = os.path.normpath(MSMPI_INC)
          MSMPI_LIB = os.path.normpath(MSMPI_LIB)
          self.library_info.update(
              include_dirs=[MSMPI_INC],
              library_dirs=[MSMPI_LIB],
              libraries=["msmpi"],
          )
          self.section = "msmpi"
          self.filename = [os.path.dirname(MSMPI_INC)]
          return True
  
      arch = platform.architecture()[0][:2]
      # Look for Microsoft MPI in the environment
      MSMPI_INC = os.environ.get("MSMPI_INC")
      MSMPI_LIB = os.environ.get("MSMPI_LIB" + arch)
      MSMPI_LIB = MSMPI_LIB or os.environ.get("MSMPI_LIB")
      if setup_msmpi(MSMPI_INC, MSMPI_LIB):
          return True
      # Look for Microsoft MPI v7/v6/v5 in default install path
      for ProgramFiles in ("ProgramFiles", "ProgramFiles(x86)"):
          ProgramFiles = os.environ.get(ProgramFiles, "")
          archdir = {"32": "x86", "64": "x64"}[arch]
          MSMPI_DIR = os.path.join(
              ProgramFiles, "Microsoft SDKs", "MPI"
          )
          MSMPI_INC = os.path.join(MSMPI_DIR, "Include")
          MSMPI_LIB = os.path.join(MSMPI_DIR, "Lib", archdir)
          if setup_msmpi(MSMPI_INC, MSMPI_LIB):
              return True
      # Look for Microsoft HPC Pack 2012 R2 in default install path
      for ProgramFiles in ("ProgramFiles", "ProgramFiles(x86)"):
          ProgramFiles = os.environ.get(ProgramFiles, "")
          archdir = {"32": "i386", "64": "amd64"}[arch]
          MSMPI_DIR = os.path.join(ProgramFiles, "Microsoft MPI")
          MSMPI_INC = os.path.join(MSMPI_DIR, "Inc")
          MSMPI_LIB = os.path.join(MSMPI_DIR, "Lib", archdir)
          if setup_msmpi(MSMPI_INC, MSMPI_LIB):
              return True
      # Microsoft MPI (legacy) and others
      ProgramFiles = os.environ.get("ProgramFiles", "")
      CCP_HOME = os.environ.get("CCP_HOME", "")
      for name, prefix, suffix in (
          ("msmpi", CCP_HOME, ""),
          ("msmpi", ProgramFiles, "Microsoft HPC Pack 2012 R2"),
          ("msmpi", ProgramFiles, "Microsoft HPC Pack 2012"),
          ("msmpi", ProgramFiles, "Microsoft HPC Pack 2012 SDK"),
          ("msmpi", ProgramFiles, "Microsoft HPC Pack 2008 R2"),
          ("msmpi", ProgramFiles, "Microsoft HPC Pack 2008"),
          ("msmpi", ProgramFiles, "Microsoft HPC Pack 2008 SDK"),
      ):
          mpi_dir = os.path.join(prefix, suffix)
          if not mpi_dir or not os.path.isdir(mpi_dir):
              continue
          define_macros = []
          include_dir = os.path.join(mpi_dir, "include")
          library = "mpi"
          library_dir = os.path.join(mpi_dir, "lib")
          if name == "msmpi":
              include_dir = os.path.join(mpi_dir, "inc")
              library = "msmpi"
              arch = platform.architecture()[0]
              if arch == "32bit":
                  library_dir = os.path.join(library_dir, "i386")
              if arch == "64bit":
                  library_dir = os.path.join(library_dir, "amd64")
              if not os.path.isdir(include_dir):
                  include_dir = os.path.join(mpi_dir, "include")
          self.library_info.update(
              define_macros=define_macros,
              include_dirs=[include_dir],
              libraries=[library],
              library_dirs=[library_dir],
          )
          self.section = name
          self.filename = [mpi_dir]
          return True
      return None
  
imports: import os
  import sys
  import shlex
  import shutil
  import logging
  import platform
  from collections import OrderedDict
  from configparser import ConfigParser
  from configparser import Error
label_desc: Use image node_id 11 for calling the Config obj's underlying member method code with example usage: obj._setup_windows_msmpi() and returns: None, None, True, True, True, False, True, True, int,  int, int,  int