Summary of Debugger Extensions in Wdfkd.dll

The Windows Driver Kit (WDK) includes a debugger extension library, named Wdfkd.dll. This library contains debugger extension commands that you can use to debug both Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF) drivers starting with version 2.

For a complete description of each command, see Windows Driver Framework Extensions (Wdfkd.dll). For more information about all available debugger extension libraries, see the documentation that is supplied with the Windows Debugging package.

You can find a video series that demonstrates how to debug a KMDF driver at Videos: Debugging KMDF Drivers.

To debug a driver that uses UMDF version 1.11 or earlier, you must instead use the Wudfext.dll debugger extension library. For more info, see User-Mode Driver Framework Extensions (Wudfext.dll).

The extension commands that the Wdfkd.dll extension library provides include:

Extension Description Frameworks

!wdfkd.wdfhelp

Displays this list of debugger extensions.

!wdfkd.wdfchildlist

Displays a child list's state and information about all of the device identification descriptions that are in the child list.

KMDF

!wdfkd.wdfcollection

Displays the objects that are contained in a collection.

KMDF

UMDF 2

!wdfkd.wdfcommonbuffer

Displays information about a common buffer object.

KMDF

UMDF 2

!wdfkd.wdfcrashdump

Displays the framework's event log records, if available, from a small memory dump. The framework's event log records are available if ForceLogsInMiniDump is set in the registry, or if the framework can determine that your driver caused the bug check.

KMDF

!wdfkd.wdfdevext

Displays the WDFDEVICE-typed object handle that is associated with the DeviceExtension member of a Microsoft Windows Driver Model (WDM) DEVICE_OBJECT structure.

KMDF

UMDF 1

UMDF 2

!wdfkd.wdfdevice

Displays information that is associated with a WDFDEVICE-typed handle.

KMDF

UMDF 2

!wdfkd.wdfdeviceinterrupts

Displays all the interrupt objects for a specified device handle

KMDF

UMDF 2

!wdfkd.wdfdevicequeues

Displays information about all of the queue objects that belong to a specified device.

KMDF

UMDF 2

!wdfkd.wdfdmaenabler

Displays information about a DMA enabler object, along with its associated DMA transaction objects and common buffer objects.

KMDF

!wdfkd.wdfdmaenablers

Displays a summary of all DMA enabler objects, DMA transaction objects, and common buffer objects that are associated with a specified device object.

KMDF

!wdfkd.wdfdmatransaction

Displays information about a WDF direct memory access (DMA) transaction object.

KMDF

!wdfkd.wdfdriverinfo

Displays information about a framework-based driver, such as its library version and hierarchy of object handles.

KMDF

UMDF 2

!wdfkd.wdfextendwatchdog

Extends the time-out period (from 10 minutes to 24 hours) of the framework's watchdog timer during power transitions.

KMDF

!wdfkd.wdffindobjects

Finds and displays framework objects.

KMDF

UMDF 2

!wdfkd.wdfforwardprogress

Displays information about the guaranteed forward progress capabilities of an I/O queue.

KMDF

!wdfkd.wdfgetdriver

Displays the driver name.

KMDF

UMDF 2

!wdfkd.wdfhandle

Displays information about a framework object handle.

KMDF

UMDF 2

!wdfkd.wdfinterrupt

Displays information about a framework interrupt object handle.

KMDF

UMDF 2

!wdfkd.wdfiotarget

Displays information about a WDFIOTARGET-typed object handle.

KMDF

UMDF 2

!wdfkd.wdfldr

Displays information about all of the drivers that are using the framework library.

KMDF

UMDF 1

UMDF 2

!wdfkd.wdflogdump

Displays the framework's event log records, if available, from a complete memory dump, a kernel memory dump, or a live kernel-mode target.

KMDF

UMDF 2

!wdfkd.wdflogsave

Saves the framework's event log records in an event trace log (.etl) file that you can view by using TraceView.

KMDF

UMDF 2

!wdfkd.wdfmemory

Displays a memory object's buffer address and size.

KMDF

UMDF 2

!wdfkd.wdfobject

Displays information about a framework object.

KMDF

UMDF 2

!wdfkd.wdfopenhandles

Displays information about all the handles that are open on the specified WDF device.

KMDF

UMDF 2

!wdfkd.wdfpoolusage

Displays a driver's memory pool usage.

KMDF

UMDF 2

!wdfkd.wdfqueue

Displays information about a WDFQUEUE-typed object handle.

KMDF

UMDF 2

!wdfkd.wdfrequest

Displays information about a WDFREQUEST-typed object handle.

KMDF

UMDF 2

!wdfkd.wdfsearchpath

Sets the search path for locating the framework log's format files.

KMDF

UMDF 2

!wdfkd.wdfsettraceprefix

Sets a prefix string for tracing messages in the framework's event log.

KMDF

UMDF 2

!wdfkd.wdfsetdriver

Sets a driver name that is used as a default name for other commands that require a driver name.

KMDF

UMDF 2

!wdfkd.wdfspinlock

Displays information about a framework spin-lock object. This information includes the spin lock's acquisition history and the length of time that the lock was held.

KMDF

UMDF 2

!wdfkd.wdftagtracker

Displays tag information (including the tag value, line, file, and time) for a specified object tag.

KMDF

UMDF 2

!wdfkd.wdftmffile

Specifies the trace message format (.tmf) files that the !wdflogdump extension will use to display event log records.

KMDF

UMDF 2

!wdfkd.wdftraceprtdebug

Turns on the TracePrt diagnostic mode.

KMDF

UMDF 2

!wdfkd.wdfumdevstack

Displays detailed information about a UMDF device stack in the implicit process.

UMDF 2

!wdfkd.wdfumdevstacks

Displays information about all UMDF device stacks in the implicit process.

UMDF 2

!wdfkd.wdfumdownirp

Displays the kernel-mode I/O request packet (IRP) that is associated with a specified user-mode IRP.

UMDF 2

!wdfkd.wdfumfile

Displays information about a UMDF intra-stack file.

UMDF 2

!wdfkd.wdfumirp

Displays information about a user-mode I/O request packet (UM IRP).

UMDF 2

!wdfkd.wdfumirps

Displays the list of pending user-mode I/O request packets (UM IRPs) in the implicit process.

UMDF 2

!wdfkd.wdfusbdevice

Displays information about a WDFUSBDEVICE-typed object handle.

KMDF

UMDF 2

!wdfkd.wdfusbinterface

Displays information about a WDFUSBINTERFACE-typed object handle.

KMDF

UMDF 2

!wdfkd.wdfusbpipe

Displays information about a WDFUSBPIPE-typed object handle.

KMDF

UMDF 2

!wdfkd.wdfwmi

Displays a device's Windows Management Instrumentation (WMI) information.

KMDF