OSRLogo
OSRLogoOSRLogoOSRLogo x OSR Custom Development Services
OSRLogo
x

Everything Windows Driver Development

x
x
x
GoToHomePage xLoginx
 
 

    Thu, 14 Mar 2019     118020 members

   Login
   Join


 
 
Contents
  Online Dump Analyzer
OSR Dev Blog
The NT Insider
The Basics
File Systems
Downloads
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

The Late Show, with OSR - Ten Things You Need to Know About Vista

If you're like most sane people, you've probably been pretty much ignoring the whole Vista thing until now.  However, now that RC1 (and a follow-on update) has shipped, giving some brain bandwidth to your drivers on Vista is pretty much mandatory.  Afraid you've missed some key Vista info?  Wanna sound like you actually know what you're doing when grilled by your marketroid?  No worries, your friends here at OSR have you covered.

So, without further ado and in no apparent order, here are the ten most important things that any driver dev needs to know about Windows Vista:

1.  By default, users now have almost no privs.
Unlike in previous Windows releases, where users typically had administrator privileges, Vista has a feature called "Least-privileged User Account" or LUA for short.  You'll also see this feature referred to as "User Account Controls" or UAC.  With this lovely feature, any time you try to do something that requires privilege (like, ah, install a driver) you're prompted with a pop-up saying, in effect, "Do you really want to do this??" (See Figure 1)

I'm sure somebody wants this feature, though I can personally attest that it's annoying as hell for a dev.  The good news is, you can just turn it off.  Hector found out how.  Check out his memo from April of this year: "Disabling User Account Control on Vista".


Figure 1 - Yes, I Really Want to do This...

2.  By default, there's no Administrator account. 
And even when there is, you can't log into it because it's been disabled.  Fortunately, you can enable it from the MMC-based Computer Management section of the Administrative Tools Control Panel.  To make it work, be sure to disable all other user accounts that have admin privileges as well.

3.  The DDK is now called the WDK.
Pretty much the same stuff for driver devs (but not testers, see the next item!) but with a different name.

4.  The HCTs have been replaced.
In case you care, the HCTs have been replaced with a new set of tests and a new testing framework called the Driver Test Manager.  Community-wide, the jury is still out on whether this is a good thing.  But, we can tell you that the HCT's were old, crufty, badly documented, awkward, unsustainable, and intensely annoying.  At least DTM provides a new platform on which Microsoft can build cool stuff in the future.

5.  You don't use boot.ini on Vista anymore.
You say you want to enable debugging in Vista?  Or perhaps you want to specify an alternate kernel and HAL image?  Well, you don't do this by editing boot.ini anymore.  Now, you have the privilege of using the BCDEDIT utility.  And you're particularly lucky, because we've included a "how to" about BCDEDIT in this issue of The NT Insider ("Tooling Around with Vista").

6.  DbgPrint and KdPrint aren't displayed by default in the debugger.
This is one Hector actually warned us about two years ago. It seems that, in a quest to reduce debug spew, ordinary DbgPrint and KdPrint commands are turned into DbgPrintEx commands using the "default debug print filter."  Check out Hector's memo on this topic for how to enable your debug output: "Getting DbgPrint Output To Appear In Longhorn".

7.  You have to digitally sign your driver package, and perhaps your .sys file, to run on any Vista x64 system.
No, this doesn't mean that you have to submit your driver to WHQL for testing.  What it means is that your x64 driver package will have to be signed with your organization's Class 3 Code Signing Certificate to be able to install it.  Further, if your x64 driver starts at boot time, the driver image itself (the .sys file) will have to be signed.  While there are ways around this for testing, there is no way to permanently disable this "feature" on an x64 Vista system.  You can read about this program, and the process of actually signing your drivers, on Microsoft's WHDC website: http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx-- and in Hectors lastest Memo on this topic. Just one more caveat: To avoid going insane, you'll want to be sure that you're using the absolute latest version of the signing tools and certificates.

8.  You can now write USB drivers in user-mode. 
The release of Vista marks the official release of the User Mode Driver Framework (UMDF).  Based on a highly simplified COM model, this incredibly clever framework actually lets you write user-mode code for USB-type devices using function calls that are very similar to those implemented by KMDF.  And, no... the performance doesn't suck.  Unless you spend your entire life coding in kernel-mode, we recommend you give UMDF a try for your next USB-related project.

9.  You can't just WHQL the 32-bit version of your driver.
This is one of the most amazing things that I've heard to date about Vista. If you want to submit your device/driver to WHQL for testing, you must submit an x64 driver.  You can submit just an x64 driver, or you can submit an x64 driver along with a 32-bit driver.  But no 32-bit only driver submissions will be accepted.  Good news for x64 adoption.  If you haven't done so already, start porting!

10.  Technical Changes?  Few.
I guess it's good that this is number ten on our list.  When it comes to significant technical changes for driver devs in Windows Vista, there are few.  Yes, the display architecture has changed again.  But you know we barely acknowledge the existence of display drivers here in The NT Insider anyhow.  And yes, there are a bunch of new NDIS models and features.  But most of these are still "optional" or "recommended."   Obviously, if you work in the network space, you'll want to check these out.  If you write WDM drivers, the most significant technical changes that you'll have to deal with are those to Power Management.  And those changes are all for the better.  Check out our previous article from The NT Insider titled "Power Management Changes in Vista".

How Did We Do?
Did we list the Vista items that are most relevant to you as a driver dev?  Add to the list!  Tell us your top items in Windows Vista that your colleauges need to be aware of by leaving a comment below.

Related Articles
Getting DbgPrint Output To Appear In Vista and Later
Only Signed Drivers To Run on Vista X64
USB 2.0 Debugging
Disabling User Account Control on Vista
No More x86 Only Submissions to WHQL
Power Play - Power Management Changes in Vista
Just Sign Everything - What to Sign and How to Sign It for Vista
What is Coming with Vista - Limited User Access
Write No Code...Get a GUI - Vista Power Plan Integration
Tooling Around with Vista - Modifying Windows Boot & Debug Options in Vista

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

"AVStream class now required for certification"
Yes, nothing much has changed, unless you are doing video or audio.

If you have stream-class minidrivers for video and audio capture, you have to rewrite the top half of your drivers to comply with the AVStream interface in order to get Vista logo certification. Not trivial at all. The old drivers still install and work, if you are lucky, but cannot be certified for Vista.

Rating:
17-Oct-06, Charles Hanes


"Hook kernel functions"
It was much talk about preventing hooking various kernel functions, like registry. Have there restrictions been implemented?

09-Oct-06, Ola Presterud


"Comments / Feedback"
A very interesting and useful article. Here are a few points of feedback: 1. Disabling UAC is puts the users machine at unncessary risk. It's easy enough to elevate for specific tasks using a cmd prompt if needed. Please don't encourage this unsecure behaviour.

5. There is a global way to enable things like kernel debugging using the msconfig tool. This doesn't provide a support for boot time selection like bcdedit but it can be easier to use.

Rating:
27-Sep-06, Kev Gee


"Thanks!"
Great sum up. This is what I have been looking for.

Rating:
26-Sep-06, Udo Eberhardt


"Few tech changes? What about the audio stack"
The audio stack has only been turned inside out, with WaveRT drivers and user-mode APO's replacing WDM drivers and kernel-mode DSP processing objects.

"Few"? Phooey, I say. Not if you're an audio IHV or support house.

--jim

Rating:
26-Sep-06, Jim Barber


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