Dependency Walker

Last updated
Dependency Walker
Original author(s) Steve Miller [1] [2]
Developer(s) Microsoft
Initial releasebefore 1997 [3] [4] [5]
Stable release
2.2.6000
Built: October 29, 2006 (2006-10-29)
2.2.10011
Built: October 29, 2015 (2015-10-29) from wdk10
Operating system Microsoft Windows
Type object code analyzer
License Freeware
Website www.dependencywalker.com

Dependency Walker or depends.exe is a free program for Microsoft Windows used to list the imported and exported functions of a portable executable file. It also displays a recursive tree of all the dependencies of the executable file (all the files it requires to run). Dependency Walker was included in Microsoft Visual Studio until Visual Studio 2005 (Version 8.0) and Windows XP SP2 support tools. The latest version v2.2.10011 is not available on dependencywalker.com website but is included in the Windows Driver Kit v10. [6] [7] [8] [9]

Contents

As of Windows 7, Microsoft introduced the concept of Windows API-sets, a form of DLL redirection. [10] [11] [12] Dependency Walker has not been updated to handle this layer of indirection gracefully, and when used on Windows 7 and later it will likely show multiple errors. Dependency Walker can still be used for some application level debugging despite this.

As of October 2017 an Open Source C# rewrite of Dependency Walker called Dependencies.exe has been released on GitHub. It does not yet offer the full range of Dependency Walker features, but has been updated to handle Windows API-sets and WinSxS (side-by-side assemblies).

Basic features

See also

Related Research Articles

VBScript is a deprecated Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing on the various OS platforms or using the API or scripting languages of Microsoft's applications. The relationship management was situated in assorted media: web sites, newsletters, developer conferences, trade media, blogs and DVD distribution.

The Portable Executable (PE) format is a file format for executables, object code, DLLs and others used in 32-bit and 64-bit versions of Windows operating systems, and in UEFI environments. The PE format is a data structure that encapsulates the information necessary for the Windows OS loader to manage the wrapped executable code. This includes dynamic library references for linking, API export and import tables, resource management data and thread-local storage (TLS) data. On NT operating systems, the PE format is used for EXE, DLL, SYS, MUI and other file types. The Unified Extensible Firmware Interface (UEFI) specification states that PE is the standard executable format in EFI environments.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running.

<span class="mw-page-title-main">Windows Script Host</span> Automation technology for Windows

The Microsoft Windows Script Host (WSH) is an automation technology for Microsoft Windows operating systems that provides scripting abilities comparable to batch files, but with a wider range of supported features. This tool was first provided on Windows 95 after Build 950a on the installation discs as an optional installation configurable and installable by means of the Control Panel, and then a standard component of Windows 98 and subsequent and Windows NT 4.0 Build 1381 and by means of Service Pack 4. The WSH is also a means of automation for Internet Explorer via the installed WSH engines from IE Version 3.0 onwards; at this time VBScript became means of automation for Microsoft Outlook 97. The WSH is also an optional install provided with a VBScript and JScript engine for Windows CE 3.0 and following and some third-party engines including Rexx and other forms of Basic are also available.

<span class="mw-page-title-main">Windows Installer</span> Software

Windows Installer is a software component and application programming interface (API) of Microsoft Windows used for the installation, maintenance, and removal of software. The installation information, and optionally the files themselves, are packaged in installation packages, loosely relational databases structured as COM Structured Storages and commonly known as "MSI files", from their default filename extensions. The packages with the file extensions mst contain Windows Installer "Transformation Scripts", those with the msm extensions contain "Merge Modules" and the file extension pcp is used for "Patch Creation Properties". Windows Installer contains significant changes from its predecessor, Setup API. New features include a GUI framework and automatic generation of the uninstallation sequence. Windows Installer is positioned as an alternative to stand-alone executable installer frameworks such as older versions of InstallShield and NSIS.

<span class="mw-page-title-main">Windows Registry</span> Database for Microsoft Windows

The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and user interfaces can all use the registry. The registry also allows access to counters for profiling system performance.

<span class="mw-page-title-main">Architecture of Windows NT</span> Overview of the architecture of the Microsoft Windows NT line of operating systems

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

Active Scripting is the technology used in Windows to implement component-based scripting support. It is based on OLE Automation and allows installation of additional scripting engines in the form of COM modules.

A dynamic-link library (DLL) is a shared library in the Microsoft Windows or OS/2 operating system.

As the next version of Windows NT after Windows 2000, as well as the successor to Windows Me, Windows XP introduced many new features but it also removed some others.

In Windows NT operating systems, a Windows service is a computer program that operates in the background. It is similar in concept to a Unix daemon. A Windows service must conform to the interface rules and protocols of the Service Control Manager, the component responsible for managing Windows services. It is the Services and Controller app, services.exe, that launches all the services and manages their actions, such as start, end, etc.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

The NTFS file system defines various ways to redirect files and folders, e.g., to make a file point to another file or its contents without making a copy of it. The object being pointed to is called the target. Such file is called a hard or symbolic link depending on a way it's stored on the filesystem.

Resource Kit is a term used by Microsoft for a set of software resources and documentation released for their software products, but which is not part of that product. Resource kits offer supplementary resources such as technical guidance, compatibility and troubleshooting information, management, support, maintenance and deployment guides and multipurpose useful administrative utilities, which are available separately.

Windows Vista contains a range of new technologies and features that are intended to help network administrators and power users better manage their systems. Notable changes include a complete replacement of both the Windows Setup and the Windows startup processes, completely rewritten deployment mechanisms, new diagnostic and health monitoring tools such as random access memory diagnostic program, support for per-application Remote Desktop sessions, a completely new Task Scheduler, and a range of new Group Policy settings covering many of the features new to Windows Vista. Subsystem for UNIX Applications, which provides a POSIX-compatible environment is also introduced.

<span class="mw-page-title-main">Windows Task Scheduler</span> Computer application of Microsoft Windows

Task Scheduler is a job scheduler in Microsoft Windows that launches computer programs or scripts at pre-defined times or after specified time intervals. Microsoft introduced this component in the Microsoft Plus! for Windows 95 as System Agent. Its core component is an eponymous Windows service. The Windows Task Scheduler infrastructure is the basis for the Windows PowerShell scheduled jobs feature introduced with PowerShell v3.

<span class="mw-page-title-main">Microsoft POSIX subsystem</span> Subsystem shipped with the first versions of Windows NT

Microsoft POSIX subsystem is one of four subsystems shipped with the first versions of Windows NT, the other three being the Win32 subsystem which provided the primary API for Windows NT, plus the OS/2 and security subsystems.

Side-by-side assembly technology is a standard for executable files in Windows 98 Second Edition, Windows 2000, and later versions of Windows that attempts to alleviate problems that arise from the use of dynamic-link libraries (DLLs) in Microsoft Windows. Such problems include version conflicts, missing DLLs, duplicate DLLs, and incorrect or missing registration. In side-by-side, Windows stores multiple versions of a DLL in the %systemroot%\WinSxS directory, and loads them on demand. This reduces dependency problems for applications that include a side-by-side manifest.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Compatibility layer for running Linux binary executables natively on Windows

Windows Subsystem for Linux (WSL) is a feature of Microsoft Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL is not available to all Windows 10 users by default. It can be installed either by joining the Windows Insider program or manually via Microsoft Store or Winget.

References

  1. Dependency Walker 2.2 (Windows 95 - Windows 10) Steve Miller's Applications Page
  2. Page 123, Technology Best Practices, By Robert H. Spencer, Randolph P. Johnston, Dependency Walker is a well-recognized profiling tool that is freeware developed by Steve Miller, a Microsoft developer, who keeps this utility up-to-date with the latest Microsoft operating system releases...
  3. Tool 'depends' - Depends.exe (1/1) By Steve Miller, 19/11/1997 - microsoft.public.vc.utilities, Google Groups, For starters, there are two separate applications called "depends.exe". One is a console application written by Matt Pietrek for MSJ magazine http://www.microsoft.com/msj/ ), the other one is a GUI application I wrote for Microsoft. They both do similar things, but are unrelated (I did not know about Matt's version and I don't believe he knew about mine)....The GUI version, named Dependency Walker, shipped in the Win32 SDK, NT 4.0 Resource Kit, MSDN,...My site contains the complete version of Dependency Walker 1.0...
  4. Download for version: 2.1.3623 Release Date: June 25, 2002, How To Use Dependency Walker Version 2.1 to Create a Profile, Article ID: 256872, Applies to: Microsoft Visual Studio 6.0 Enterprise Edition
  5. Review:Microsoft Dependency Walker 2.1 (32-bit):Analyse application failures in seconds with Dependency Walker, By Mike Williams, 2010-06-28, Techworld
  6. Profiling x86 executable with Dependency Walker hangs on Windows 7 x64 Stack Overflow
  7. Download kits and tools for Windows hardware development Windows 10 Hardware Dev Center
  8. Page 104, Effective GUI Testing Automation: Developing an Automated GUI Testing Tool, By Kanglin Li, Mengqi Wu
  9. Dependency Walker, Third-Party Tools for Windows XP Embedded, Microsoft MSDN
  10. "ApiSetSchema". www.geoffchappell.com. Retrieved 2016-10-03.
  11. "Windows 8.1 API Sets (Windows)". msdn.microsoft.com. Retrieved 2016-10-03.
  12. "Dynamic-Link Library Redirection". msdn.microsoft.com. Archived from the original on 2016-03-02. Retrieved 2016-10-03.