What does NTSTATUS 0xC000036F (STATUS_INVALID_IMPORT_OF_NON_DLL) mean?

 
Previous Next
STATUS_SYSTEM_HIVE_TOO_LARGE STATUS_NO_SECRETS

STATUS_INVALID_IMPORT_OF_NON_DLL

The PE import table references an invalid module type

PE import descriptors identify modules that provide imported symbols. The loader expects those providers to be DLL images, with limited handling for imports from the process executable. This status means the resolved provider is another image type or otherwise lacks the characteristics required for a normal import module.

The problem can originate in a malformed import table, an incorrect import library, a custom linker step, or DLL search order resolving the requested base name to an unrelated executable. The imported function names may be valid while the provider image type is still wrong.

What to inspect

  • Dump every import descriptor and the actual full path resolved for the failing provider name.
  • Inspect the provider COFF Characteristics and verify IMAGE_FILE_DLL or the allowed executable relationship.
  • Check build inputs for an import library generated from the wrong binary or a stale .def file.
  • Audit search directories for an EXE or data file shadowing the intended DLL base name.

References


Looking for a different code? Search another status or error code.