OSRLogo
OSRLogoOSRLogoOSRLogo x Seminar Ad
OSRLogo
x

Everything Windows Driver Development

x
x
x
GoToHomePage xLoginx
 
 

    Sat, 20 Jan 2018     115951 members

   Login
   Join


 
 
Contents
  Online Dump Analyzer
OSR Dev Blog
The NT Insider
Downloads
ListServer / Forum
Driver Jobs
  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
Getting DbgPrint Output To Appear In Vista and Later

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.

Writing WDF Drivers I: Core Concepts
LAB

Nashua (Amherst), NH
15-19 May 2017

Writing WDF Drivers II: Advanced Implementation Techniques
LAB

Nashua (Amherst), NH
23-26 May 2017

Kernel Debugging and Crash Analysis
LAB

Dulles (Sterling), VA
26-30 Jun 2017

Windows Internals and Software Driver Development
LAB

Nashua (Amherst), NH
24-28 Jul 2017

 
 
 
 
x
LetUsHelp
 

Need to develop a Windows file system solution?

We've got a kit for that.

Need Windows internals or kernel driver expertise?

Bring us your most challenging project - we can help!

System hangs/crashes?

We've got a special diagnostic team that's standing by.

Visit the OSR Corporate Web site for more information about how OSR can help!

 
bottom nav links