Welcome to the home of The NT Insider – the only publication dedicated entirely to Windows system software. For more than 20 years, OSR has been proud to serve as a definitive technical resource for the Windows driver development community, and the articles within the pages of The NT Insider are just one of many ways we “pay it forward”.
So, what might you find within the pages of this publication? How about:
Technical Articles – short and long format pieces authored by OSR staff, covering beginner and advanced topics, and delivered with the detail and authority that you’ve come to expect from OSR.
Peter Pontificates – if you ask Peter for his opinion (or even if you don’t), you’ll get it. OSR partner Peter Viscarola needs to vent, sometimes even on topics that are relevant to the driver development community.
Analyst’s Perspective – OSR’s resident crash analysis expert, Scott Noone, uses this column to enlighten us all on everything from debugging fundamentals, to tips and tricks of root-cause analysis.
Guest Articles – we haven’t got the time to spend on the universe of potential topics that could be useful to our readers, and rely on respected community members to fill in the gaps.
Interviews & Book Reviews & More! – news on industry conferences, OS changes, WDK updates, reviews of technical books or driver development tools/HW, and even the occasional interview with key Microsoft staff – all to keep you informed!
Subscribe to The NT Insider
It’s easy (and, of course, it’s free)! Just send a blank email to email@example.com. We’ll send you an email when each new issue of The NT Insider is published. No spam, no advertising email, no sharing your email address, no bullshit.
- Peter Pontificates: Computer Science Education: Yup, Still Sucks
Some things change…some don’t
- Introduction to Simple Peripheral Bus Devices and Drivers
An introduction to the protocol-based, Simple Peripheral Bus (SPB) in Windows, which supports the development of SPB Controller and Client Device drivers for I2C and the SPI bus.
- Tips for Using I/O Targets
Guidelines on handling WDF Requests for both local and remote I/O targets
- Today in Driver Signing
Semi-validation of what we *think* is the state of the world in Windows driver signing…as of this point…today…right now
- Analyst’s Perspective: My Driver Passes Driver Verifier! (Or Does It…)
You’d be surprised at the number of folks who fail to validate run-time functionality of their driver. If you do, great…but don’t stop there!
- Bye-Bye Co-Installers
Some “new” news regarding WDF version support on down-level platforms.
- Peter Pontificates: Progress Means Moving Forward
Progress and the Windows Start Menu?
- Happiness is Xperf
A walkthrough of use of Xperf, including how to add and secure analysis from custom trace events
- KMDF and UMDF Hints
The OSR team catalog’s it’s top five hints to make developing and debugging WDF drivers easier
- Logical and Physical File Sizes in Windows
When you’re developing solutions at the file system level in Windows, it’s all about file sizes. Learn here, how allocation size, End of File (EOF) and Valid Data Length (VDL) are managed and interpreted within the scope of (for example) the Windows VM system.
- Fix Your (Offline) Symbols
Working in an isolated environment with no access to the Microsoft public symbol server? Community contributor David Boyce delves into detail on how to use SymChk with manifest files to help get you symbols setup correctly.
- Peter Pontificates: Windows 10 is Ruining My Life
Well, it’s OS upgrade time, and as he has done in the past, Peter laments his choice of career path.
- Driver Signing and Windows 10
If you or your customers need to ship a driver for Windows 10, you need to be aware of the NEW driver signing requirements.
- KDNET Debugging
VM debugging has come a long way, but for those of you that struggle with KD debugging with virtual com ports, give KD network debugging a whirl…
- Windows 10 WDK and Visual Studio 2015
Go ahead and upgrade your toolset – here, we detail our positive first experiences with the new WDK and Visual Studio 2015.
- More on Maintaining Valid Data Length
This guest contribution from Microsoft’s Malcolm Smith delves deeper into some of the subtle nuances of valid data length.
- Getting Started with Windows Drivers
New to Windows driver development? There’s just no excuse for not knowing where to start
- WDF File Object Callbacks Demystified
For those rare instances (or not) when your driver needs to care about tracking open instances on (number or state) on your device…
- Windows Pool Manager
Kernel debugging in Windows is a learned task where, “the more you know…the more you know”. Understanding how pool management is handled in Windows is another piece of the puzzle that will increase your understanding of the OS, and aid in simplifying debugging
- Analyst’s Perspective: The Truth Behind PAGE_FAULT_IN_NONPAGED_AREA
Take it from our expert crash analysts here at OSR: read and understand the output provided as a result of running a debugger command to improve your chances of determining root cause
- Driver Installers
Thanks to community contributor Tim Roberts for breaking down driver installers in this guest article
- Peter Pontificates: Always Forward, Onward…
Sometimes, when you take two steps forward, not everyone can keep up
- Peter Pontificates: We Wah Heeya First
Peter channels Tommy from Quinzee and plays the Paul Revere card to make a point
- Using Bus Interfaces for Driver to Driver Communication
Bus Interfaces (or WDK speak: Driver Defined Interfaces) are worth a second look
- The WDK Docs Improve Through Regular Releases
Taking notice and giving recognition where recognition is due.
- Understanding EvtIoStop, Bugcheck 9F and Related SDV Errors
Learn more about handling power state transitions as related to WDF Queues
- Load or Unload
Summary: a crash analysis leads to an observation and change in mini-filter registration
- Drive Letter Alternatives
Explanation of volume GUIDs and their use in simplifying challenges in name spaces
- Peter Pontificates: To the Cloud
What’s the connection between Russian proverbs, the Dancing Plague of 1518 and storing critical company data in the “cloud” have in common? Peter explains.
- Understanding Sync Scope in WDF Drivers
In the mult-threaded/multi-processor world we live in, synchronizing access to data structures is just part of what we do as driver devs. In this article, we introduce Sync Scope as an option that you may wish to consider to protect your shared data.
- Updating Drivers with KDFiles
KDFiles is worth another look as a tool to ensure you’re keeping an updated copy of your driver between your development and target machine.
- Guest Article: Windows and Real-Time
Latency and real-time requirements: a topic of well-deserved coverage with gratitude to community contributor, Daniel Terhell for making it happen.
- Isolation Realized
OSR describes the use of a Windows isolation filter as part of its next generation file encryption solution.
- Peter Pontificates: I Don’t Care, I Want My Internet
Internet access is the fallout from “Major Climate Change”, in this issue’s sad expose on the connected world we live in.
- Introduction to NVMe Technology
A primer on Non-volatile memory technology (NVMe) and current support in Windows.
- Win7 vs Win8 StorPort Miniports
This article covers the evolution of StorPort miniports, with a not to changes and support specific to NVMe.
- Our Journey to Writing a Windows NVMe Driver
Here, we provide background and insight into OSR’s own NVMe Driver Solution Kit for Windows.
- Hardware vs Software Bus Analyzers: Alternatives
Hardware bus analyzers are cool. Software analyzers are inexpensive. Are there uses for both? This article explores the topic, using analyzer support for NVMe as a case study.
- MSBUILD 101
The Windows 8 WDK brings full integration with Visual Studio to driver developers. This article includes some fundamentals for working with MSBUILD and a walk-through of an MSBUILD project
- Introducing Reader/Writer Spin Locks
New as of the Windows 8 WDK (and supported back to Vist SP1), reader-writer spin locks are a great addition to the Windows driver developer tool chest
- The Inverted Call Model in KMDF
Beginner driver developers often want to know how to best allow their user mode program to be notified of an event in a kernel mode driver. This article discusses the inverted call model as it pertains to KMDF drivers
- Fixing Broken Debugger Extensions
This article discusses some limitations in the information available in public symbols (PDB files) provided by the Windows OS, and how to address them to ensure correct operation of kernel debugging tools
- Another Look at Lint
This article offers another look at the PC-Lint software utility, a helpful run-time analysis solution, with insight into integration with the Windows Driver Kit to allow for a broader range of checks for your driver.
- Peter Pontificates: Coming to the Surface
Peter relishes a rare “win” as a prognosticator, and speaks of a hopeful future tied to his Windows Surface
- The Wonderful World of Software Drivers
Software drivers do not claim hardware resources, do not manage hardware, and do not attach to an existing stack that has a Function Driver – but whether PnP-aware or legacy-style, they are a commonly written driver for monitoring and reporting tasks in the kernel.
- Peter Pontificates: Pods of Fun
Peter sees the light on the iPad – better late than never…
- The Isolation Driver (Part II)
Isolation drivers are an effective means of separating physical views (the physical content of a file) from logical views (the logical content of a file). The second part of this article in a series moves on from the fundamental architecture of an isolation driver, into some of the issues involved in creating one.
- Debugging Race Conditions
Windows crash analysis is a learned skill, and learning how to debug race conditions is one of those skills that will serve you well down the road.
- Analyst’s Perspective: Analyzing User Mode State from a Kernel Connection
This article uses a practical example to explain how to perform user mode analysis from a kernel debug session
- The Basics About WDF Queues
Queue dispatch types, queue states, power management features, cancellation…as the title says…
- Peter Pontificates: Of Clients, Clean Rooms and Copyrights
Peter’s not an IP attorney. Nor did he stay at a Holiday Inn Express last night (or ever for that matter). But, that shouldn’t stop him from making a common sense argument about intellectual property matters either.
- Creating a Proper Version Information Resource
Sure, it’s a pet peeve of ours, but your users and support folks will benefit from the steps you take to create a proper version information resource (RC) file for your device driver.
- Win7 Crash Redux
Based on feedback from the community, we revisit a Windows 7 crash dump analysis.
- Analyst’s Perspective: 10 WinDbg Commands You Might Not Know (But Should)
Chief analyst Scott Noone reviews WinDBG commands that we find useful in our own kernel debugging work (and you will too!)
- Win8 WDK Provides Visual Studio Integration
The biggest news to driver developers, as of Windows 8, the WDK is integrated into Visual Studio – read on!
- Peter Pontificates: Do Christmas Dreams Come True?
Peter passes judgment on the most recent WDK to see how his wishes of Christmas’s past stack up.
- WDK Preview: Installation Through Debugging
This article is meant as a preview for the Windows 8 WDK, as specific to configuring VS for kernel debugging.
- Win8 and WDK Changes You’ll Care About
A summary of changes to Windows 8 and its associated Windows Driver Kit (WDK) that all Windows kernel developers should be aware of.
- Five Things to Like: Visual Studio Integration
As the title says, a list of items we’ll sure kernel devs will like about Visual Studio integration for the rest of us.
- Five Things to Not Like: Visual Studio Integration
Not ALL is good for Windows driver developers with respect to VS integration and the Windows Driver Kit (WDK).
- Windows 8 Preview: File System Changes
Here, OSR checks out potential changes in the Windows file system space prior to the release of Windows 8.
- Windows 8 WDK: Converting “Sources” Based Projects to “.vcxproj”
With the Win8 and later WDK now integrated into Visual Studio, you’ll need to convert your older driver projects based on SOURCES files to .vcxproj files.
- Writing a Virtual Storport Miniport Driver (Part III)
The third in a series of articles on the topic of Windows virtual storport miniport drivers
- Peter Pontificates: Pods, Pads, Ques and Their Kin
“The more you share, the more you get” – and in this case, Peter shares his opinion of various mobile devices that are out to change the world
- Collecting Detailed Performance Data with Xperf
In this article, we describe the value in the Xperf utility to driver developers, provided as part of the Windows Performance Toolkit
- Undocumented DFS & RDR Interactions
File system mini-filters really DO need to care about Microsoft’s Distributed File System (DFS). Depending on the target platform, you even have to care about it “differently”. Enjoy.
- Peter Pontificates: Pros & Cons of Agile SW Development Methodology
Agile for kernel code? Let’s see if you can predict Peter’s stance on this topic.
- Virtual StorPort Tweaks
Here, thanks to help from the community, we perform a bit of cleanup on our virtual storport miniport driver
- The Basics of Debugger Extensions
After a quick tour of the Debugger Engine library, we explain how to create your own debugger extensions to add to your trough of debugging and analysis tools
- The Isolation Driver (Part I)
OSR introduces the now popular “isolation” model for Windows file system mini-filters
- A Primer on Signature Checks in Windows
Community contributor, Tim Roberts clears the air on signature checking in Windows
- Implementing Reader/Writer Locks in User-Mode
The choice: redesign a locking model in an existing code base, or figure out how to implement EResource semantics in user mode. Guess which we chose?
- Analyst’s Perspective: Debug Smarter
If the tools don’t provide the answers you need, it’s not time to give up. It’s time to buckle down to save yourself time down the road.