Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-10147

Windows 2k3 TDI.SYS (and ndis.sys) driver need MmAllocateMappingAddress

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • 0.4.16
    • NTCore
    • None
    • ReactOS r69163 with Windows 2k3 TDI.SYS and NDIS.SYS

    Description

      TDI.SYS and NDIS.SYS need the MmAllocateMappingAddress API, and fail to load currently in ReactOS because the API returns STATUS_NOT_IMPLEMENTED:

      (C:\Downloads\reactos\ntoskrnl\mm\ARM3\sysldr.c:176) Loading: \SystemRoot\System32\drivers\TDI.SYS at F9BF1000 with b pages
      WARNING:  MmAllocateMappingAddress at C:\Downloads\reactos\ntoskrnl\mm\ARM3\pool.c:1390 is UNIMPLEMENTED!
      (C:\Downloads\reactos\ntoskrnl\mm\ARM3\sysldr.c:954) Leaking driver: TDI.SYS
      (C:\Downloads\reactos\ntoskrnl\mm\ARM3\sysldr.c:428) ndis.sys <ndis.sys>
      ERROR:  MiResolveImageReferences at C:\Downloads\reactos\ntoskrnl\mm\ARM3\sysldr.c:1271 
      MmCallDllInitialize failed with status 0xc000009a
      Break instruction exception - code 80000003 (first chance)
      nt!DbgBreakPoint:
      8051de32 cc              int     3
      kd> kp
      ChildEBP RetAddr  
      f9e38794 804b52f7 nt!DbgBreakPoint
      f9e3882c 804b7ce9 nt!MiResolveImageReferences(void * ImageBase = 0xf9bfc000, struct _UNICODE_STRING * ImageFileDirectory = 0xf9e388a4 "\SystemRoot\System32\drivers\", struct _UNICODE_STRING * NamePrefix = 0x00000000, char ** MissingApi = 0xf9e388a0, unsigned short ** MissingDriver = 0xf9e388e4, struct _LOAD_IMPORTS ** LoadImports = 0xf9e388b8)+0x5f7 [c:\downloads\reactos\ntoskrnl\mm\arm3\sysldr.c @ 1271]
      f9e38930 8045ef82 nt!MmLoadSystemImage(struct _UNICODE_STRING * FileName = 0xf9e389d4 "\SystemRoot\System32\drivers\tcpip.sys", struct _UNICODE_STRING * NamePrefix = 0x00000000, struct _UNICODE_STRING * LoadedName = 0x00000000, unsigned long Flags = 0, void ** ModuleObject = 0xf9e38a48, void ** ImageBaseAddress = 0xf9e38a40)+0x9a9 [c:\downloads\reactos\ntoskrnl\mm\arm3\sysldr.c @ 3232]
      f9e38a50 8045f538 nt!IopLoadUnloadDriver(struct _UNICODE_STRING * RegistryPath = 0xf9e38a6c "\Registry\Machine\System\CurrentControlSet\Services\Tcpip", struct _DRIVER_OBJECT ** DriverObject = 0xf9e38a60)+0x332 [c:\downloads\reactos\ntoskrnl\io\iomgr\driver.c @ 2007]
      f9e38a74 805073d9 nt!NtLoadDriver(struct _UNICODE_STRING * DriverServiceName = 0xb08baa20 "\Registry\Machine\System\CurrentControlSet\Services\Tcpip")+0x98 [c:\downloads\reactos\ntoskrnl\io\iomgr\driver.c @ 2120]
      f9e38a88 8050697d nt!KiSystemCallTrampoline(void * Handler = 0x8045f4a0, void * Arguments = 0xf9e38b48, unsigned long StackBytes = 4)+0x19 [c:\downloads\reactos\ntoskrnl\include\internal\i386\ke.h @ 742]
      f9e38ac8 80403d86 nt!KiSystemServiceHandler(struct _KTRAP_FRAME * TrapFrame = 0xf9e38ad0, void * Arguments = 0xf9e38b48)+0x22d [c:\downloads\reactos\ntoskrnl\ke\i386\traphdlr.c @ 1727]
      f9e38ac8 804017f1 nt!KiSystemService+0x60
      f9e38b40 8045df3c nt!ZwLoadDriver+0x11
      f9e38b58 8053bbb4 nt!IopInitializeSystemDrivers(void)+0x4c [c:\downloads\reactos\ntoskrnl\io\iomgr\driver.c @ 1187]
      f9e38c80 8043168f nt!IoInitSystem(struct _LOADER_PARAMETER_BLOCK * LoaderBlock = 0x8008b000)+0x334 [c:\downloads\reactos\ntoskrnl\io\iomgr\iomgr.c @ 593]
      f9e38d80 80431ccc nt!Phase1InitializationDiscard(void * Context = 0x8008b000)+0xa1f [c:\downloads\reactos\ntoskrnl\ex\init.c @ 1799]
      f9e38d8c 804eb2df nt!Phase1Initialization(void * Context = 0x8008b000)+0xc [c:\downloads\reactos\ntoskrnl\ex\init.c @ 2013]
      f9e38dc0 80504520 nt!PspSystemThreadStartup(<function> * StartRoutine = 0x80431cc0, void * StartContext = 0x8008b000)+0x7f [c:\downloads\reactos\ntoskrnl\ps\thread.c @ 158]
      f9e38ddc 804eb25f nt!KiThreadStartup(void)+0x40 [c:\downloads\reactos\ntoskrnl\ke\i386\thrdini.c @ 81]
      f9e38de0 80431cbf nt!PspUnhandledExceptionInSystemThread+0xcf
      f9e38de4 8008b000 nt!RtlStringCbCatExA+0x7f
      WARNING: Frame IP not in any known module. Following frames may be wrong.
      f9e38de8 00000000 0x8008b000

      Because MmAllocateMappingAddress is used (and unimplemented), it is expected that also MmMapLockedPagesWithReservedMapping, MmUnmapReservedMapping and MmFreeMappingAddress will be used. They are also unimplemented in ReactOS.

      Attachments

        1. mm-implement-mappingaddress.patch
          12 kB
          ThFabba
        2. mm-reserved-fixed.patch
          10 kB
          DougLyons
        3. MmReservedMapping-test-fix.patch
          0.8 kB
          DougLyons
        4. w2k3sp2_kmtest_MmReservedMapping_fixed.png
          114 kB
          DougLyons

        Issue Links

          Activity

            People

              Oleg Dubinskij Oleg Dubinskiy
              hbelusca hbelusca
              Votes:
              8 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: