OSRLogoOSRLogoOSRLogo x Seminar Ad

Everything Windows Driver Development

GoToHomePage xLoginx

    Thu, 14 Mar 2019     118020 members


  Online Dump Analyzer
OSR Dev Blog
The NT Insider
The Basics
File Systems
ListServer / Forum
  Express Links
  · The NT Insider Digital Edition - May-June 2016 Now Available!
  · Windows 8.1 Update: VS Express Now Supported
  · HCK Client install on Windows N versions
  · There's a WDFSTRING?
  · When CAN You Call WdfIoQueueP...ously

Special Win2K PnP Tracing and Checks

There's been a rumor floating around here for a while about some "secret" locations in Win2K that you could modify to get it to:

a)      Enable a bunch of built-in tests, much like (but beyond those provided by) driver verifier, and,

b)      Display PnP information as the drivers started.

Imagine our surprise when, we typed "!patch" in WinDbg and the following was displayed:

Category: WDM Driver Correctness !Patch Irps - Assert IRP usage is correct !Patch IrpTrack - Monitor IRPs for mistakes !Patch IrpRotateStatus - Rotate success codes !Patch IrpPendAll - Force IRPs Pending !Patch IrpDeferCompletion - IRP completion is stalled at each stack !Patch IrpConsumeStacks - Consume stack locations (undo IoSkips) !Patch IrpSurrogate - Writes to IRPs after completion fault !Patch IrpEditSRBs - Patch SRBs so writes after completion fault.

Complete IRPs at specific IRQLs.

And up to one of:

!Patch IrpDpcComplete - Complete all IRPs at IRQL2 (DPC). !Patch IrpPassiveComplete - Complete all IRPs at IRQL0 (Passive). !Patch IrpSeedStack - Catches uninitialized variables. !Patch IrpWatchAlloc - IRPs are allocated from the special pool. !Patch IrpNoHacks - Disable all hacks for IRP asserting. !Patch IrpNoAsserts - Turn off IRP assertions.

Category: Plug-n-Play Options !Patch PnpQueue - Shows Pnp remove information. !Patch HalPnpVerbose - Turn on Hal Pnp Verbose Output. !Patch PnpRes - Show resource assignment info.

And up to one of:

Patch PnpResFull - Even more resource info.

Selecting an indented assert automatically enables all higher asserts. Type !Patch ? to get more information on an assert.

Selecting an indented assert automatically enables all higher asserts. Type !Patch ? to get more information on an assert.

Cool, eh? Yeah, I thought so too...



Related Articles
Enabling Debugging on the Local Machine for Windows XP®
More on Kernel Debugging - KMODE_EXCEPTION_NOT_HANDLED
Making WinDbg Your Friend - Creating Debugger Extensions
Who Cares? You Do! - Implementing PnP for WDM/NT V5
Life Support for WinDbg - New Windows NT Support Tools
Converting Windows NT V4 Drivers to WDM/Win2K
Lots of New PnP and Installation Information
Choose Your Weapon: Kernel Mode Debuggers - a Choice at Last
Wild Speculation -- Debugging Another Crash Dump
Resolving Symbol Problems in WinDBG

User Comments
Rate this article and give us feedback. Do you find anything missing? Share your opinion with the community!
Post Your Comment

Post Your Comments.
Print this article.
Email this article.
bottom nav links